概述
仅供自己复习哦~欢迎大家指点.
18/4/15
通过Java,jdbc操数据库.一般都是有固定的步骤构成:
1.做好数据库 .jar的导入.
2.创建对象.
3.定义driver,url,user,passwrod;
4.然后就是操作这些对象操作数据库中的数据
5.然后就是对这些对象进行异常捕获.
通过try{ }catch{ }处理异常
6.最后一点! 别忘了关闭 Connection,PreparedStatement,ResultSet对象.
创建的时候是:Connection连接→PreparedStatement预处理→ResultSet结果集;
关闭的时候是倒着关闭的:ResultSet结果集→PreparedStatement预处理→Connection连接;
这也复合一定的逻辑.
总结:
jdbc操作步骤总结如下:
1、 加载数据库驱动
2、 创建并获取数据库链接
3、 创建jdbc statement对象
4、 设置sql语句
5、 设置sql语句中的参数(使用preparedStatement)
6、 通过statement执行sql并获取结果
7、 对sql执行结果进行解析处理
8、 释放资源(resultSet、preparedstatement、connection)
jdbc问题总结如下:
1、 数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。
2、 Sql语句写在代码中造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。
3、 向sql语句传参数麻烦,因为sql语句的where条件不一定,可能多也可能少,占位符需要和参数一一对应。
4、 对结果集解析麻烦,sql变化导致解析代码变化,且解析前需要遍历,如果能将数据库记录封装成pojo对象解析比较方便。
由此引伸到了Mybatis框架
最后附录一个自己写的登陆时用到的Dao层代码(类似工厂模式);
package com.cn.loginDao;
import java.sql.*;
public class UserDao {
/**
* 用户的登录和注册
* @since 1.0
* @version 1.1
* @author Twenty-seven
* @data 18/3/25/11:24
* */
//查询用户密码
public String FindUser(String username){
String passd = null;
String sql = "select * from User_info where username=?";
Connection con =getConnection();//获取连接
PreparedStatement pstmt =null;
ResultSet rs = null;
try {
pstmt = con.prepareStatement(sql);//预处理
pstmt.setString(1, username);//给?赋值
rs = pstmt.executeQuery();//执行SQL语句
if(rs.next()){//遍历查找到与username匹配的password
passd=rs.getString("password");//将查询到的password赋值给passd
}else{
passd=null;//未查询到为空
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
if(rs!=null)rs.close();
if(pstmt!=null)pstmt.close();
if(con!=null)con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return passd;//返回passd
}
//--------------------我是分隔符----略略略-------------------------------
//注册新用户
public void addUser(String username,String passd){
Connection con = getConnection();
PreparedStatement pstmt =null;
String sql = "INSERT INTO User_info(username,password) VALUES(?,?)";
try {
pstmt = con.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, passd);
pstmt.executeUpdate();
}catch (SQLException e) {
e.printStackTrace();
}finally {
try {
if(pstmt!=null)pstmt.close();
if(con!=null)con.close();
}catch (SQLException e) {
e.printStackTrace();
}
}
}
//--------------------我是分隔符----略略略---------------------------
//连接数据库
public static Connection getConnection(){
String driver ="com.mysql.jdbc.Driver";//数据库驱动
String url ="jdbc:mysql://localhost:3306/test";
String user ="root";
String password ="123456";
Connection connection =null;
try {
Class.forName(driver);//加载数据库驱动
connection =DriverManager.getConnection(url, user, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;//返回连接
}
//public static void main(String[] args) {
//UserDao ud=new UserDao();
//ud.addUser("q","q");
//}
}
最后
以上就是沉静蛋挞为你收集整理的JDBC的操作流程整理 仅供自己复习哦~欢迎大家指点. 总结:jdbc操作步骤总结如下:的全部内容,希望文章能够帮你解决JDBC的操作流程整理 仅供自己复习哦~欢迎大家指点. 总结:jdbc操作步骤总结如下:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复