jdbc,在javaSE中扮演着与数据库交互必不可少的角色,那么今天我就来和大家说说jdbc的使用方法吧!
首先在目录resource下新建文件夹取名为jdbc.properties,然后在其中分别写上数据库的信息以及驱动名称。
添加信息
driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/student_db?characterEncoding=UTF-8
user=root
password=root
在pom.xml中添加依赖,记住要放在dependencies中。
<dependency><groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.32</version></dependency>
新建类Jdbc.class,对数据库的连接进行封装,方便了其他类与数据库交互时引用,减少了代码量同时也增强了逻辑性。
package util;import javax.annotation.Resources;import java.io.FileReader;import java.io.IOException;import java.net.URL;import java.sql.*;import java.util.Properties;public class Jdbc { private static String driver; private static String url; private static String user; private static String password; static { try { //新建加载配置文件对象 Properties pro = new Properties(); //新建当前类加载对象 ClassLoader classLoader=Jdbc.class.getClassLoader(); //利用类加载器加载配置文件url URL url1=classLoader.getResource("jdbc.properties"); //获取配置文件路径 String path=url1.getPath(); //以文件流FIleReader的方式加载配置文件 pro.load(new FileReader(path)); //获取配置文件的值 driver=pro.getProperty("driver"); user=pro.getProperty("user"); password=pro.getProperty("password"); url=pro.getProperty("url"); //加载类驱动 Class.forName(driver); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } //获取连接 public static Connection getConnection() throws SQLException{ Connection con = DriverManager.getConnection(url,user,password); return con; } //关闭连接,释放资源 public static void close(PreparedStatement ps, Connection con, ResultSet rs) throws SQLException { if(ps!=null){ ps.close(); } if(con!=null){ con.close(); } if(rs!=null){ rs.close(); } }}
新建JdbcDemo类对封装类进行使用
package util;
import javax.annotation.Resources;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
import java.util.Properties;
public class Jdbc {
private static Stringdriver;
private static Stringurl;
private static Stringuser;
private static Stringpassword;
static {
try {
//新建加载配置文件对象
Properties pro =new Properties();
//新建当前类加载对象
ClassLoader classLoader=Jdbc.class.getClassLoader();
//利用类加载器加载配置文件url
URL url1=classLoader.getResource("jdbc.properties");
//获取配置文件路径
String path=url1.getPath();
//以文件流FIleReader的方式加载配置文件
pro.load(new FileReader(path));
//获取配置文件的值
driver=pro.getProperty("driver");
user=pro.getProperty("user");
password=pro.getProperty("password");
url=pro.getProperty("url");
//加载类驱动
Class.forName(driver);
}catch (IOException e) {
e.printStackTrace();
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//获取连接
public static Connection getConnection()throws SQLException{
Connection con = DriverManager.getConnection(url,user,password);
return con;
}
//关闭连接,释放资源
public static void close(PreparedStatement ps, Connection con, ResultSet rs)throws SQLException {
if(ps!=null){
ps.close();
}
if(con!=null){
con.close();
}
if(rs!=null){
rs.close();
}
}
}
新建JdbcDemo.class
package dao;
import util.Jdbc;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JdbcDemo {
Connectionconnection;
PreparedStatementps;
ResultSetrs;
public String find()throws SQLException {
//获取连接
connection=Jdbc.getConnection();
//需要执行的sql语句,*注意空格每一个元素之间都要空格,否注会报错
String sql="select * from teacher where Tname = ?";
//连接中获取prepareStatement对象,并将sql语句放入。
ps=connection.prepareStatement(sql);
//名字
String name="任雨";
//为缓存池中‘Tname = ?’中添加值
ps.setString(1,name);
//执行查询,并将得到的值存放在结果集中
rs=ps.executeQuery();
//遍历输出结果集中的内容
while (rs.next()){
System.out.println(name+"的密码是"+rs.getString("Tpassword"));
}
//释放资源
Jdbc.close(ps,connection,rs);
return null;
}
public static void main(String[] args)throws SQLException {
JdbcDemo jdbcDemo=new JdbcDemo();
jdbcDemo.find();
}
}
数据库展示:
运行结果
最后我想说是,其实jdbc只是与后台交互的基础,工作中实际使用的更多的是各种框架,不过各位不用担心,关于框架的使用,我会在后面的文章中为大家阐述。