- JPA:JavaEE的规范,Java persistence api: Java的持久化API. Hibernate实现了该规范
- JDBC隶属于JavaSE的范畴,Java6开始JDBC4.0有一个新特性-无需加载注册驱动.javaWeb 不会自动 加载驱动
-
1. MySQL的驱动包 :mysql-connector-java-5.1.x-bin.jar, 2.build path,告诉项目去哪里去找字节码文件.
1 加载注册驱动
Class.forName(“com.mysql.jdbc.Driver”); 1 : 把驱动类加载到 JVM
2 : 类加载到虚拟机就会执行静态代码块
3 : 在静态代码块里就创建驱动对象并注册
2 获取连接对象
static Connection = DriverManager.getConnection(String url, String user, String password)
url : 连接数据库url: jdbc:mysql://localhost:3306/jdbcdemo
如果连接的是本地的数据库而且端口是3306 可以省略ip 和端口:jdbc:mysql:///jdbcdemo
user : 连接数据库用户名
password : 连接数据的密码验证已经获取连接:可以在MySQL控制台,使用命令:show processlist; 查看MySQL运行进程.
-
Connection API
Statement createStatement() : 创建语句对象,用于发送sql 语句
prepareStatement(sql); 预编译语句对象,
参数 带有占位符的sql 语句
UPDATE EMPLOYEES SET SALARY = ? WHERE ID = ?
close(); -
Statement API: 语句对象,可以向数据库发送SQL语句,可以执行SQL
int executeUpdate(String sql) : 可执行 DML DDL 操作
DML : 返回受影响的行
DDL : 返回0
ResultSet executeQuery(String sql) : 发送SQL语句,同时返回一个结果集对象
close(); -
ResultSet API : 执行查询操作后返回的结果集,ResuleSet 就是包装了结果集
boolean next() :调用next 判断是否还有下一行数据,有则光标下移一行,没有则光标不移动.返回true 表示可移动,false 表示不可移动
Xxx : 代表类型String,Long,Date
columnIndex : 代表哪一个索引列
Xxx getXxx(int columnIndex) : 获取当前行的某个索引位置的列的值
Xxx getXxx(String columnName); 获取当前行的某一个列名对应的列的值close();关闭资源
-
PreparedStatement Api : 预编译语句对象
parameterIndex:代表第几个? Xxx 代表类型
setXxx(int parameterIndex, Xxx xxx) -
在 Java 使用 1 作为开始索引的就只有JDBC 和JPA
-
DAO(Data Access Object)是一个数据访问接口,
-
连接数据库的四要素 : 驱动名称/url/账户名/密码
-
public class JDBCUtil { private static Properties p=new Properties(); private static Connection conn; private static PreparedStatement inPsm; private static PreparedStatement selPsm; private static PreparedStatement selAllPsm; private static String inSql= "insert into student (name,score,salary) values(?,?,?);" ; private static String selSql= "select * from student where id=?;" ; private static String selAllSql= "select * from student;" ; static { try { InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties"); p.load(inputStream); Class.forName(p.getProperty("driverClassName")); conn = DriverManager.getConnection(p.getProperty("url"),p.getProperty("username"),p.getProperty("password")); inPsm = conn.prepareStatement(inSql); selPsm = conn.prepareStatement(selSql); selAllPsm = conn.prepareStatement(selAllSql); } catch ( Exception e) { e.printStackTrace(); } } public static Connection getConn() { return conn; } public static PreparedStatement getInPsm() { return inPsm; } public static PreparedStatement getSelPsm() { return selPsm; } public static PreparedStatement getSelAllPsm() { return selAllPsm; } public static void close(Connection conn,PreparedStatement psm,ResultSet res) throws SQLException{ if (conn!=null) { conn.close(); } if (res!=null) { res.close(); } if (psm!=null) { psm.close(); } } }
JDBC-01
最新推荐文章于 2024-06-23 23:41:18 发布