JDBC(推荐学习网站:stackoverflow)
在这里先给出可能会用到的资源包括以下:
- MySql驱动jar包
- Oracle驱动jar包
- navicatMySql数据库的可视化工具(navicat110_mysql_cs_x86为中文,另一个英文,英文没有破解说明,不会破解的可以在下方评论)
- Oracle数据库的可视化工具
- mySql安装包和安装说明(mySql资料有安装详细说明)
- oracle安装包和安装说明,这个Oracle比较小(对于学习来说足够了),而且卸载方便不必像其它安装包的oracle,安装之后难以卸载干净。
需要的点击以下链接获取(失效了在下方评论):JDBC编程工具
sql 标准化查询语言
sun 【驱动】 数据库厂商
Java语言 mysql
oracle
标准 实现
数据库连接步骤:
-
注册驱动
mysql驱动
oracle驱动
-
...
Class.forName(driver);
-
获取连接
连接 url
url
jdbc:oracle:thin:@localhost:1521:XE
jdbc:mysql://127.0.0.1:3306/zmysql
user root
password rootConnection conn = ConnectionFactory.getConnection();
-
创建pstmt/stmt对象
如果有占位符替换占位符String sql = "insert into tbl_student values(null,'"+stu.getName()+"',"+stu.getAge()+")"; pstmt = conn.prepareStatement(sql);
-
执行sql
int executeUpdate(); 增 删 该 Result executeQuery(); 查 execute();
-
如果有结果集,处理结果集
while(rs.next()){ long id = rs.getLong("id"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println(id+"=="+name+"=="+age); }
-
释放资源
Connection
PreparedStatement
ResultSet
后创建的先释放 (一般放在try{}catch{}的finally{})if(rs!=null){ rs.close(); } if(pstmt!=null){ pstmt.close(); } if(conn!=null){ conn.close(); }
额外知识点
三层架构
1. 数据访问层 (jdbc) bean
dao
2. 业务逻辑处理层 service(面向接口编程)
3. 视图层 web
|
M 数据
V C
视图 控制器
封装的源码
public class ConnectionFactory {
private static String driver;
private static String url;
private static String user;
private static String password;
static {
driver = "com.mysql.jdbc.Driver";
url = "jdbc:mysql://127.0.0.1:3306/tbl_student";
user = "root";
password = "13870775439z";
// 从文件系统中获取参数
}
/**
* 获取连接
* */
public static Connection getConnection() throws Exception {
Class.forName(driver);
return DriverManager.getConnection(url, user, password);
}
/**
* 释放资源
* */
public static void close(ResultSet rs, PreparedStatement pstmt,
Connection conn) throws SQLException {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
}
/*
* 插入和更新
*/
public static int Operator(String sql) {
int num = 0;
try {
Connection connection = null;
PreparedStatement pstmt = null;
try {
connection = ConnectionFactory.getConnection();
pstmt = connection.prepareStatement(sql);
num = pstmt.executeUpdate();
} finally {
ConnectionFactory.close(null, pstmt, connection);
}
} catch (Exception e) {
e.printStackTrace();
}
return num;
}
/*
* 查询
*/
public static String queryOperator(String sql,String username) {
String result="查询失败";
try {
ResultSet rs = null;
PreparedStatement pstmt = null;
Connection conn = null;
try {
conn = ConnectionFactory.getConnection();
pstmt = conn.prepareStatement(sql);
rs=pstmt.executeQuery();
while (rs.next()) {
String name = rs.getString("name");
if (usernamae.equals(name)) {
result="查询成功";
break;
}
}
} finally {
ConnectionFactory.close(rs, pstmt, conn);
}
} catch (Exception e) {
// TODO: handle exception
}
return result;
}
}