JDBC知识

来源:互联网 发布:js时间控件webdriver 编辑:程序博客网 时间:2024/05/15 23:53
JDBC

jdbc:java database connectivity--java 数据库连接(点击下载经典实例)


工程中的包


1.包的命名规则

com.公司名.(项目名.具体模块的名称)实现分类的名称

1.po包:存放的是javabean类,每个Javabean类对应数据库中一张表。类名和表名一致

2.dao包:存放的是操作数据的类,即对数据库中的表进行增删查改操作的类,每个dao类对应数据库中的一张表。类

名为一表名+Dao

3.util包:存放的是公用的类和常量类

4.test包:存放的是测试类


javabean类:储存数据的类。只包括属性、构造器、setter和getter方法


数据库客服端操作数据库的步骤:

1.连接数据库(ip地址,端口号,用户名,密码,数据库名)

2.打开发送和执行sql语句的窗口

3.发送和执行sql语句

4.根据返回结果,判断是否正确操作了数据库

5.关闭打开的所有的东西


JDBC操作数据库的步骤:

1.连接到数据库:

(1)加载数据库驱动:会抛出一个ClassNotFoundException异常

mysql:Class.forName("com.mysql.jdbc.Driver")

oracle:Class.forName("");


(2)利用驱动和三个参数(url,user,password)获得连接:会抛出一个SQLException异常

java.sql.Connection con = java.sql.DriverManager.getConnection(url,user,password);

mysql:String url = "jdbc:mysql://127.0.0.1:数据库端口号/databaseName".

oracle:String url = "";


3.通过连接获得操作数据库的对象:会抛出一个SQLException异常

java.sql.Statement st = con.createStatement();


4.使用java.sql.Statement对象执行sql语句:会抛出一个SQLException异常

执行更新sql语句:int rows = st.executeUpdate(sql);

执行查询sql语句:java.sql.ResultSet re = st.executeQuery(sql);


5.根据返回的rows/re,判断SQL语句是否正确执行:

rows!=0 SQL语句正常执行

re.next()==true  表示查出了字表


6.关闭,先打开后关闭

关闭re:re.close():会抛出一个SQLException异常

关闭st:st.close():会抛出一个SQLException异常

关闭con:con.close()会抛出一个SQLException异常


第一个jar 包:数据库的驱动

Web工程的jar包都是放在WebRoot/WEB-INF/lib文件夹里(放在里面,自动导入)


几个接口:

java.sql.Connection是一个接口

java.sql.Statement是一个接口

java.sql.ResultSet是一个接口

java.sql.PreparedStatement是一个接口


数据库连接配置文件:database.properties只加载一次,放在src文件夹下面

properties文件以键(name)值(value)方式保存数据

从properties文件中解析出value值:

InputStream is = null;
is = DBConnectionUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
Properties p = new Properties();
p.load(is);
String value = p.getProperty("name");


java.sql.Statement和java.sql.PreparedStatement比较

代码比较

1.SQL的写法:

Satement:String sql = "selete id from user where email =' "+email+" ' ";

PreparedStatement:String sql = "selete id from user where email = ?"

2.st/ps的获取:

Statement:st = con.createStatement();

PreparedStatement:ps = con.preparedStatement(sql);

3.参数的设置:

Statement:在SQL中给出

PreparedStatement:ps.setType(1,value);  ps.setType(2,value);

4.执行SQL:

Statement:int rows  =  st.executeUpdate(sql);      re = st.executeQuery(sql);

PreparedStatement:int rows = ps.executeUpdate();    re = ps.executeQuery();


PreparedStatement的优势:

1.防止SQL的注入,提高安全性

2.对参数实现类型的自动转换,代码的可读性,可维护性提高

3,.对于批处理:PreparedStatement效率更高一些(oracle明显,MySQL区别不大)



原创粉丝点击