当前位置: 代码迷 >> 综合 >> 利用JDBC连接数据库以及单例模式
  详细解决方案

利用JDBC连接数据库以及单例模式

热度:81   发布时间:2024-01-26 04:26:43.0

JDBC(Java DataBase Connection):Java连接数据库技术

步骤:

1.下载对应版本的驱动包

2.在项目中引入mysql的数据库驱动包

3.开始编码[天龙八部]

4.使用Statement对象

5.使用PreparedStatement预编译对象



天龙八部:

1)装载驱动2)获得连接3)定义SQL4)获得编译对象[预编译对象/参数赋值]5)执行SQL6)处理结果7)关闭资源

查询数据库的数据(编译对象):

public static void selectData() {try {//1、装载驱动Class.forName("com.mysql.cj.jdbc.Driver");//2.定义连接urlString url="jdbc:mysql://localhost:3306/stus?serverTimezone=UTC&characterEncoding=utf-8";//3.定义账号和密码String user="root";String password="123456";//4.获得连接对象Connection con=DriverManager.getConnection(url, user, password);//5.定义sql语句String sql="select * from emp";//6.获得sql 语句的编译对象Statement st=con.createStatement();//7.编译并执行sql,如果是查询语句,则返回结果集ResultSet rs=st.executeQuery(sql);//如果结果集中有数据,则依次取出while(rs.next()) {int empno=rs.getInt("empno");String ename=rs.getString("ename");String job=rs.getString("job");System.out.println(empno+" "+ename+" "+job);}con.close();rs.close();con=null;rs=null;} catch (Exception e) {e.printStackTrace();}}

 查询数据库的数据(预编译对象):

	public static void selectData1(String userName,String userPwd) {try {//装载驱动Class.forName("com.mysql.cj.jdbc.Driver");//定义连接urlString url="jdbc:mysql://localhost:3306/stus?serverTimezone=UTC&characterEncoding=utf-8";//定义账号密码String user ="root";String password="123456";//获取连接对象Connection cn=DriverManager.getConnection(url,  user, password);//定义sql语句String sql="select * from user where userName=? and userPwd=?";//获取预编译对象PreparedStatement ps=cn.prepareStatement(sql);//设置sql语句中参数的值ps.setString(1, userName);ps.setString(2, userPwd);//执行SQL语句ResultSet rs=ps.executeQuery();if(rs.next()) {System.out.println("查看表中有这个数据");}else {System.out.println("表中没有这个数据");}//关闭连接,释放资源cn.close();rs.close();cn=null;rs=null;} catch (Exception e) {e.printStackTrace();}}

修改数据库的数据(编译对象):

public static void updataData() {try {//装载驱动Class.forName("com.mysql.cj.jdbc.Driver");//定义连接urlString url="jdbc:mysql://localhost:3306/stus?serverTimezone=UTC&characterEncoding=utf-8";//定义账号密码String user="root";String password="123456";//获取连接对象Connection cn=DriverManager.getConnection(url, user, password);//定义sql语句String sql="update emp set sal=1000 where empno=7369";//获得sql的编译对象Statement st=cn.createStatement();//编译sql语句int t=st.executeUpdate(sql);if(t==1) {System.out.println("修改数据成功");}else {System.out.println("修改数据失败");}//关闭连接,释放资源cn.close();} catch (Exception e) {e.printStackTrace();}//}

修改数据库的数据(预编译对象):

public static void updataData1(String userPwd) {try {//装载驱动Class.forName("com.mysql.cj.jdbc.Driver");//定义连接urlString url="jdbc:mysql://localhost:3306/stus?serverTimezone=UTC&characterEncoding=utf-8";//定义账号密码String user="root";String password="123456";//获取连接对象Connection cn=DriverManager.getConnection(url, user, password);//定义sql语句String sql="update user set userPwd =? where userName='lisi'";//获取预编译对象PreparedStatement ps=cn.prepareStatement(sql);//设置sql语句中参数的值
//			ps.setString(1, userName);ps.setString(1, userPwd);//执行sql语句int t=ps.executeUpdate();if(t==1) {System.out.println("更改数据成功");}else {System.out.println("更改数据失败");}//关闭连接,释放资源cn.close();cn=null;} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}};

向数据库里增加数据(编译对象):

public static void addData() {try {//装载驱动Class.forName("com.mysql.cj.jdbc.Driver");//定义连接urlString url="jdbc:mysql://localhost:3306/stus?serverTimezone=UTC&characterEncoding=utf-8";//定义账号和密码String user="root";String password="123456";//获取连接对象Connection cn=DriverManager.getConnection(url, user, password);//定义sql语句String sql="insert into emp values(6666,'xiaoxuhui','manager',null,'1996-10-15',15000,null,10)";//定义sql语句编译对象Statement st=cn.createStatement();//编译执行sql语句int t=st.executeUpdate(sql);if(t==1) {System.out.println("插入数据成功");}else {System.out.println("插入数据失败");}//关闭连接,释放资源cn.close();} catch (Exception e) {e.printStackTrace();}}

向数据库里增加数据(预编译对象):

public static void addData1(String userName,String userPwd) {try {//装载驱动Class.forName("com.mysql.cj.jdbc.Driver");//定义连接urlString url="jdbc:mysql://localhost:3306/stus?serverTimezone=UTC&characterEncoding=utf-8";//定义账号和密码String user="root";String password="123456";//获取连接对象Connection cn=DriverManager.getConnection(url, user, password);//定义sql语句String sql="insert into user(userName,userPwd) values(?,?)";//获取预编译对象PreparedStatement ps=cn.prepareStatement(sql);//设置SQL语句参数的值ps.setString(1, userName);ps.setString(2, userPwd);//执行sql语句int t=ps.executeUpdate();if(t==1) {System.out.println("插入数据成功");}else {System.out.println("插入数据失败");}//关闭连接,释放资源cn.close();cn=null;} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}

删除数据库的数据(编译对象):

public static void deleteData() {try {//装载驱动Class.forName("com.mysql.cj.jdbc.Driver");//定义连接urlString url="jdbc:mysql://localhost:3306/stus?serverTimezone=UTC&characterEncoding=utf-8";//定义账号和密码String user ="root";String password="123456";//获取连接对象Connection cn=DriverManager.getConnection(url, user, password);//定义sql语句String sql="delete from emp where empno=6666";//获取SQL语句的编译对象Statement st=cn.createStatement();//执行编译sql语句int t=st.executeUpdate(sql);if(t==1) {System.out.println("删除数据成功");}else {System.out.println("删除数据失败");}//关闭连接,释放资源cn.close();cn=null;} catch (Exception e) {e.printStackTrace();}}

删除数据库的数据(预编译对象):

public static void deleteData1(String userName,String userPwd) {try {//装载驱动Class.forName("com.mysql.cj.jdbc.Driver");//定义连接urlString url="jdbc:mysql://localhost:3306/stus?serverTimezone=UTC&characterEncoding=utf-8";//定义账号和密码String user="root";String password="123456";//获取连接对象Connection cn=DriverManager.getConnection(url, user, password);//定义sql语句String sql="delete from user where userName=?and userPwd=?";//获取预编译对象PreparedStatement ps=cn.prepareStatement(sql);//设置sql语句中参数的值ps.setString(1, userName);ps.setString(2, userPwd);//执行sql语句int t=ps.executeUpdate();if(t==1) {System.out.println("删除数据成功");}else {System.out.println("删除数据失败");}//关闭连接,释放资源cn.close();cn=null;} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}

单例模式

package com.cji.mydb;import java.sql.Connection;
import java.sql.DriverManager;/*** * 单例模式:类的单例* 类属性和成员属性的区别* @author Admin**/
public class DBUtil {//定义类属性//	懒汉模式private static DBUtil dbutil=null;//饿汉模式
//	private static DBUtil dbutil=new DBUtil();private Connection con;//私有化本类的构造方法private DBUtil() {}//定义一个类方法返回本类的对象public 	static DBUtil getinstance() {if(dbutil==null) {dbutil=new DBUtil();}return dbutil;}//定义一个方法返回connection对象public Connection getconnection() throws Exception {if(con==null) {//1、装载驱动Class.forName("com.mysql.cj.jdbc.Driver");//2.定义连接urlString url="jdbc:mysql://localhost:3306/stus?serverTimezone=UTC&characterEncoding=utf-8";//3.定义账号和密码String user="root";String password="123456";//4.获得连接对象con=DriverManager.getConnection(url, user, password);}return con;}
}

 

  相关解决方案