JDBC粗浅理解
来源:互联网 发布:新加坡旅游消费知乎 编辑:程序博客网 时间:2024/06/05 20:49
JDBC概念:
JDBC简而言之就是java数据库连接。
JDBC访问数据库支持两层模型,也支持三层模型。
我使用的服务端是mysql,在使用JDBC操作数据库之前必须的做如下工作:
下载mysql-connector-java-5.1.39-bi.jar包,将其放到工程目录的lib文件下,添加buildpath即可。
JDBC只要掌握3个主要类基本上就算入门了(注意jdbc用到的类均应用java.sql包下)。
1.Connection
程序与数据库的连接类,是基于TCP协议的连接,连接需要三次握手花时相对较长,因此连接需要进行重用,且连接完毕需要关闭否则容易导致数据库连接次数用完。获得Connection对象的方法如下:
/** * url指的是jdbc协议地址 * user 连接mysql的用户名 * password 密码 */Connection conn = DriverManager.getConnection(url, user, password);2.Statement
执行SQL语句的类,代码如下://获取Statement对象Statement st = conn.createStatement();//该方法对应的是sql语句中的selectst.executeQuery(sql); //该语句对应的是sql语句中的insert,delete,updatest.executeUpdate(sql);3.ResultSet
结果集,这个是statement执行executeQuery()方法时才会返回的结果集。下面就要敲代码来看看怎么连接mysql的了:
在这之前先要写入连接数据库的配置信息db.properties,包含url,user,password
放在src目录下,结构如下
db.properties里面代码如下
根据Connection要求,我们需要对连接类进行重用,所以我把连接的操作封装到一个工具类中DBUtil,利用饿汉式单例,代码如下:
import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Properties;/** * 恶汉单例,重用conn * */public class DBUtil {private static Connection conn;/** * 获取Connection实例的方法 * @return */public static Connection getConnection() {if (conn == null) {Properties p = getProperties();try {conn = DriverManager.getConnection(p.getProperty("url"),p.getProperty("user"), p.getProperty("password"));} catch (SQLException e) {e.printStackTrace();}}return conn;}/** * 获取db文件属性类的方法 */private static Properties getProperties() {Properties p = new Properties();try {p.load(DBUtil.class.getClassLoader().getResourceAsStream("db.properties"));return p;} catch (IOException e) {e.printStackTrace();}return null;}/** * 关闭资源 * @param rs * @param st * @param conn */public static void close(ResultSet rs, Statement st, Connection conn){if (rs != null) {try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if (st != null) {try {st.close();} catch (SQLException e) {e.printStackTrace();}}if (conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}}然后就是三大类读取操作数据库信息登场,我这里只实现了查询数据,代码如下import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import com.csdn.bean.Dept;public class ConnectionDemo {Connection conn = DBUtil.getConnection();public static void main(String[] args) {ConnectionDemo cd = new ConnectionDemo();Dept dept = cd.setectDept(10);System.out.println(dept);}/** * 根据部门id * 查询dept表中数据方法 */private Dept setectDept(int deptno) {Statement st = null;ResultSet rs = null;Dept dept = null;try {st = conn.createStatement();String sql = "select * from dept where deptno = '" + deptno + "'";rs = st.executeQuery(sql);if (rs.next()) {dept = new Dept();dept.setDeptno(rs.getInt("deptno"));dept.setDname(rs.getString("dname"));dept.setLoc(rs.getString("loc"));}} catch (SQLException e) {e.printStackTrace();}finally{DBUtil.close(rs,st,conn);}return dept;}}
to be continue......
1 0
- JDBC粗浅理解
- Scroller 粗浅理解
- 粗浅理解RSA
- docker粗浅理解
- EM算法粗浅理解
- 【XML】XML粗浅理解
- makefile的粗浅理解
- 操作系统的粗浅理解
- RNN粗浅理解
- lambda 函数的粗浅理解
- C之*星号粗浅理解
- 函数式编程粗浅理解
- paxos算法之粗浅理解
- 对JavaMail的粗浅理解
- python 装饰器粗浅理解
- Android 进程 线程 粗浅理解
- paxos算法之粗浅理解
- vuejs 双向绑定粗浅理解
- 浅析PHP7新功能及语法变化总结
- 为WordPress添加代码高亮插件
- android 音乐播放器小案例
- QQ未接收文件短期找回
- spring配置文件最全约束
- JDBC粗浅理解
- Java RMI详解(入门)
- 设计模式之代理模式(Proxy)
- [二]windows/linux安装eclipse及调试
- SPSS——相关分析——Pearson简单相关系数
- 关键字static
- content provider对联系人的基本操作
- LoadRunner的小bug
- 如何将github上的源码直接检出到eclipse里面