当前位置:Gxlcms > 数据库问题 > 七,JOBC数据库编程

七,JOBC数据库编程

时间:2021-07-01 10:21:17 帮助过:29人阅读

一,java数据库编程步骤 1,将数据库驱动包考入lib目录; 2,加载驱动--整个操作数据库程序运行期间只需要加载一次 Class.forName("com.mysql.driver");加载driver驱动 整个操作数据库程序,只需要加载一次 3,开启连接 1,开启链接调用Connection接口;(登录数据库) Connection con=null; con=DriverManager.getConnection("地址;端口/库;编码格式, 账号, 密码); 需要使用try捕获错误 编码格式; 开启编码;useUnicode=true 用&拼接参数;&characterEncoding=utf-8 例; Connection con=null; con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test ?useUnicode=true&characterEncoding=utf-8", "root", "root"); 4,操作管道(面试重点) 1,增删改; 1,声明sql语句 String sql="update t_atmuser set f_atmUserPassWord=?,f_atmUserMoney= ? where pk_atmid=? ;"; 2,?占位符,代表,用PreparedStatement为?字符串拼接方式有风险(sql注入), 所以使用位置赋值(下标是从一开始第一个就代表第一个问号) PreparedStatement ps=con.prepareStatement(sql); ps.setString(1, user.getPassword()); ps.setFloat(2, user.getAccount()); ps.setInt(3, user.getAtmid()); 3,写入数据库,返回一个int类型的值,响应的行数 ps.executeUpdate(); 4,字符串拼接使用(有风险sql注入) Statement stat = con.createStatement(); int n = stat.executeUpdate(sql); 2,查 1,申明了语句(有ID用ID查,速度更快) String sql="select pk_atmid,f_atmUserName,f_atmUserPassWord,f_atmUserMoney from t_atmuser where f_atmUserName=? and f_atmUserPassWord=?"; 2,?占位符,代表,用PreparedStatement为位置赋值 (下标是从一开始第一个就代表第一个问号) PreparedStatement ps=con.prepareStatement(sql); ps.setString(1, userName); ps.setString(2, userPassWord); 3,返回一个ResultSet类型数据 ResultSet rs=ps.executeQuery(); 4,用while来读取所有每行数据,rs.next()有几行数据就返回几个true while(rs.next()){ //rs.next();判断有没有下一行 rs.get数据类型(那个字段) user.setAccount(rs.getFloat("f_atmUserMoney")); user.setAtmid(rs.getInt("pk_atmid")); user.setCardNum(rs.getString("f_atmUserName")); user.setPassword(rs.getString("f_atmUserPassWord")); } 5,关闭管道 if(con!=unll){ con.close(); } 二,事务 1,一个动作,同时涉及到多张表的增删改查操作,且这些操作化为一体; 2,必须保证是同一个Connection 3,设置自动提交为假(开启事务); con.setAutoCommit(false);//写在Connection下 4,最后用con.commit();手动提交;之前都没有发生异常才可以; 5,发生异常就执行con.rollback();回滚;需要try(捕获异常) 6,事务的4大特性 1,原子性 多个动作是一个整体,不可被切割,必须同时成功或同时失败; 2,一致性 多个动作执行结果必须按照顺序串执行 3,隔离性 事务执行不受其他动作的干扰;事务执行的中间结果与其他动作是透明的; 4,持久性 对于自己已提交的事务必须保证对数据库的物理表执行操作; 三,映射; 类与类之间的关联;表与表之间的关联 四,注意 1,date dt=new date();//java的date date de=new java.sql.date(tb.gettime());sql的date

七,JOBC数据库编程

标签:数据库程序   exec   自动   stat   增删改查   string   indent   for   mil   

人气教程排行