网站设计的内容,温州建网站哪家好,军事新闻最新消息中国视频,重庆平面设计师工资一般多少项目连接数据库
右侧导航栏找到databsae 如果没有驱动#xff0c;先下载驱动 填写数据库用户名密码 勾选对应的表即可 JDBC代码流程
1,配置信息
2,加载驱动 从MySQL Connector/J 5.1版本开始#xff0c;推荐使用com.mysql.cj.jdbc.Driver这个新的驱动类。
3,链接数据库…项目连接数据库
右侧导航栏找到databsae 如果没有驱动先下载驱动 填写数据库用户名密码 勾选对应的表即可 JDBC代码流程
1,配置信息
2,加载驱动 从MySQL Connector/J 5.1版本开始推荐使用com.mysql.cj.jdbc.Driver这个新的驱动类。
3,链接数据库
4,向数据库发送SQL的对象statement:CURD
5,编写sql
6,执行查询SQL,返回一个ResultSet 结果集
7关闭链接释放资源 一定要做先开的后关
代码流程如下:
public class TestIdbc {public static void main(String[] args) throws ClassNotFoundException, SQLException {//配置信息//useUnicodeturecharacterEncodingutf-8解决中文乱码问题String urljdbc:mysql://localhost:3306/jdbc?useUnicodeturecharacterEncodingutf-8;String usernameroot;String password123456;//1,加载驱动 从MySQL Connector/J 5.1版本开始推荐使用com.mysql.cj.jdbc.Driver这个新的驱动类。Class.forName(com.mysql.cj.jdbc.Driver);//2,链接数据库Connection cnno DriverManager.getConnection(url,username,password);//3,向数据库发送SQL的对象statement:CURDStatement stacnno.createStatement();//4编写sqlString sqlselect * from user;//5,执行查询SQL,返回一个ResultSet 结果集ResultSet rssta.executeQuery(sql);//4编写sql// String sqlupdate user set name张三 where id1;//5,执行查询SQL,返回一个int 修改的数据条数// int rssta.executeUpdate(sql);while (rs.next()){System.out.println(idrs.getObject(id));System.out.println(namers.getObject(name));System.out.println(passwordrs.getObject(password));System.out.println(agers.getObject(age));System.out.println(addressrs.getObject(address));}//6关闭链接释放资源 一定要做先开的后关rs.close();sta.close();cnno.close();}
预编译sql
public class TestIdbc2 {public static void main(String[] args) throws ClassNotFoundException, SQLException {//配置信息//useUnicodeturecharacterEncodingutf-8解决中文乱码问题String urljdbc:mysql://localhost:3306/jdbc?useUnicodeturecharacterEncodingutf-8;String usernameroot;String password123456;//1,加载驱动 从MySQL Connector/J 5.1版本开始推荐使用com.mysql.cj.jdbc.Driver这个新的驱动类。Class.forName(com.mysql.cj.jdbc.Driver);//2,链接数据库Connection cnno DriverManager.getConnection(url,username,password);//3编写sqlString sqlinsert into user(id,name,password,address,age,eamil) values (?,?,?,?,?,?);//4,预编译PreparedStatement preparedStatement cnno.prepareStatement(sql);preparedStatement.setInt(1,3);//给第一个占位符的赋值为1preparedStatement.setString(2,我们);//给第二一个占位符的赋值为1preparedStatement.setString(3,12345);preparedStatement.setString(4,成都);preparedStatement.setString(5,18);preparedStatement.setString(6,11.qq.com);//5,执行sqlint ipreparedStatement.executeUpdate();if(i 0){System.out.println(成功);}//6关闭链接释放资源 一定要做先开的后关preparedStatement.close();cnno.close();}
}JDBC事务 ACID原则保证数据的安全性,要么都成功要么都不成功
开启事务 start transaction;
事务提交 commit()
事务回滚 rollback()
关闭事务
单元测试依赖junit !--单元测试 方法上加Test即可运行测试--dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.13.2/versionscopetest/scope/dependency
事务案例
public class TestIdbc3 {public static void main(String[] args){//配置信息//useUnicodeturecharacterEncodingutf-8解决中文乱码问题String urljdbc:mysql://localhost:3306/jdbc?useUnicodeturecharacterEncodingutf-8;String usernameroot;String password123456;Connection cnno null;try {//1,加载驱动 从MySQL Connector/J 5.1版本开始推荐使用com.mysql.cj.jdbc.Driver这个新的驱动类。Class.forName(com.mysql.cj.jdbc.Driver);//2,链接数据库cnno DriverManager.getConnection(url,username,password);//通知数据库开启是事务cnno.setAutoCommit(false);//3编写sqlString sqlupdate account set money money-100 where nameA;// 执行sqlcnno.prepareStatement(sql).executeUpdate();//制造错误int i1/0;String sql2update account set money money100 where nameB;// 执行sqlcnno.prepareStatement(sql2).executeUpdate();cnno.commit();} catch (Exception e) {try {//如果出现异常通知数据库回滚cnno.rollback();} catch (SQLException throwables) {throwables.printStackTrace();}e.printStackTrace();}finally {//6关闭链接释放资源 一定要做先开的后关try {cnno.close();} catch (SQLException throwables) {throwables.printStackTrace();}}}
}