JDBC
jdbc编程步骤
1.加载驱动程序:Class.forName(driverClass);
加载MySQL驱动:Class.forName("com.mysql.jdbc.Driver");
加载Oracle驱动:Class.forName("oracle.jdbc.driver.OracleDriver");
2.获得数据库连接:
DriverManager.getConnection(URL, NAME, PASSWORD);
需要mysql驱动:
3.创建Statement对象:
Statement statement = connection.createStatement();
JDBC(MVC三层架构):
数据库的CURD:
查询全表数据,调用statemen对象的executeQuery方法进行查询操作
查询单个数据,调用PreparedStatement对象的executeQuery方法
增删改,调用PreparedStatement对象的execute方法进行增删改
模型层:DBUtil获取数据库连接--entity--dao--service
控制层:action层
视图层:jsp/html
JDBC连接数据库的方式
1,JDBC+ODBC桥的方式
特点:需要数据库的ODBC驱动,JDBC连接ODBC,由ODBC连接数据库。仅适用Windows
2,JDBC+厂商API的方式
特点:厂商API一般使用C编写
3,JDBC+厂商Database ConnectionService+DataBase的方式
特点:在Java与Database之间架起一台专门用于数据库连接的服务器(一般由数据库厂商决定)
4,JDBC+Database的连接方式(推荐使用)
特点:使Application与数据库分开,开发者只需关心内部逻辑的实现,不需注重数据库连接的具体实现
orm映射工具:代替JDBC,和数据库连接。
int 类型的模糊查询
View Code
1 public List<DBGirls> likeQuery(String g_name,Integer g_age) throws SQLException{ 2 girlsList = new ArrayList<DBGirls>(); 3 4 StringBuilder sb = new StringBuilder(); 5 sb.append("select * from girl"); 6 sb.append(" where g_name like ? and g_age like ?"); // int类型模糊查询 7 System.out.println(sb.toString()); // 打印sql语句 8 9 // 采用预编译sql语句 10 PreparedStatement pst=conn.prepareStatement(sb.toString()); 11 pst.setString(1, '%'+ g_name +'%'); // SELECT * FROM `girl` WHERE g_name LIKE '%' "雨" '%' 12 13 // int类型模糊查询需要转换String类型 14 // pst.setString(2, "%"+ String.valueOf(g_age) +"%"); 方式1 15 pst.setInt(2, 37-'%'+g_age); // SELECT * FROM girl WHERE g_age LIKE '%5%' 方式2 16 17 // pst.execute(); execute()用于添加,修改,删除操作 不能用于查询 18 ResultSet rs = pst.executeQuery(); 19 while(rs.next()){ 20 dbGirls = new DBGirls(); 21 dbGirls.setId(rs.getInt("id")); 22 dbGirls.setG_name(rs.getString("g_name")); 23 dbGirls.setG_age(rs.getInt("g_age")); 24 dbGirls.setG_birthday(rs.getDate("g_birthday")); 25 26 girlsList.add(dbGirls); 27 } 28 return girlsList ; 29 }
转载于:https://www.cnblogs.com/Alan0218/articles/8465498.html