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 类型的模糊查询
 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     }
View Code

 

posted on 2018-02-24 14:01  荆棘Study  阅读(152)  评论(0编辑  收藏  举报