JDBC: java database connectivity java 数据库连接
Java程序是客户端 Client Client Server
MySQL是服务器 Server Java代码------------>mysql
一套规范的API (Application interface) 作用: 提供各种各样的功能
即是Java提供了一套规范接口,各大数据库厂商自己写实现类
java.sql.* ; jar 包是各大数据库厂商自己写的实现类
mysql的第三方jar包是mysql-connector-java.jar 是自己实现的
oracle的jar包是ojdbc.jar
JDBC的开放步骤:
1.创建工程,导入mysql-connector-java.jar
2.连接数据库
//驱动MySQL连接
Class.forName("com.mysql.jdbc.Driver");
//连接数据库
String url = "jdbc:mysql:localhost:3306/数据库名?characterEncording=UTF8";
Stirng user = "root";
String password = "root";
Connection conn = DriverManager.getConnection(url,user,password);
Statement state = conn.createStatement();
String sql = "select * from emp ";
state.executeQuery(sql);
String zeng = "insert into person(字段列表) values(值列表);
String shan = "delete from person where id = ?";
String gai = "update person set pname = ? where id = ?";
state.executeUpdate(zeng);
state.executeUpdate(shan);
state.executeUpdate(gai)
ResultSet 结果集
rs.next();判断是否有下一条记录
rs.getInt();
rs.getString();
rs.getDate();
rs.getObject();
====================================================================================================
ORM映射思想: Object Realationship Mapping 对象关系映射思想
出现原因: 因为Java是面向对象语言,MySQL管理的是关系型数据库,两者是完全不相关的
所以出现ORM映射思想,将两者包裹起来,完成数据的映射
JDBC的五个包:
util工具包,pojo实体类包,dao接口包,daoImpl接口实现类包,test测试包
首先根据数据库表完成实体类的映射,然后根据所需功能设计dao接口的功能设计,之后根据具体需求实现接口中的方法,最后进行测试
Table -----> Entity 实体
Record ----> Object 即是new出来的对象
Column ----> property 属性
====================================================================================================
为防止出现sql注入问题,所以拼接sql语句的时候用?来替代
sql注入: select * from T_users where loginName = '"+loginName+"' and userPwd = '' or '1' = '1'
eg:String sql = " select * from emp where emp.no = ?";
PreparedStatement ps = new preparestatement(sql);
ResultSet rs = ps.executeQuery();
…………
PreparedStatement 和 Statement的区别:
1.PreparedStatement接口 是 Statement 子接口
2.PreparedStatement 预编译可以防止sql注入问题,保证安全性
3.PreparedStatement对象对于 执行效率 要比Statement 执行效率高
====================================================================================================
多表查询 :
1.一对一 user表和身份证表 select * from `user` u inner join idCard i on u.uid = i.uid
where i.iid = ?;
2.一对多 品牌表和商品表 select * from brand b inner join product p on b.bid = p.bid
where b.bname = ?;
3.多对多 商品表和订单表 select * from product p inner join item i on p.pid = i.pid
join order on o.oid = i.oid
where orderCode = ?;
JABC一周
最新推荐文章于 2024-04-17 14:57:48 发布