今天,是我第一次写。感觉学了一段时间,不记录点什么都对不起自己。前两天看了下jdbc的连接,了解了其的连接方式,就记录下来给自己加深印象。可能写的不好也有可能出现问题。
jdbc是什么?官方解释它是Java编程语言和广泛的数据库之间独立于数据库的连接标准的Java API,根本上说JDBC是一种规范。可以理解为一种方式。大家都遵循的方式。
那么先来看看jdbc的连接方式:
1、你要先导入驱动架包,没有这个是不行的。具体步骤就是将其复制到工程里面,当然为了更好管理,可以为其创建一个文件夹。比如 libs 。 右击 选择add as library。这个就是将架包加进去,不然你单纯复制粘贴进去没有任何意义。
2、下面就开始直接写代码了。
Class.forName("com.mysql.jdbc.Driver") //注册驱动
Connection conn=DriverMannager.getConnection("jdbc:mysql://localhost:3306/test","root","password")
//这个就是获取连接对象, 括号里面为 你的数据库名字 用户名 密码 理解为和数据库建立连接
String sql="update student set balance=500 where id=1" //这个就是常规的sql语句
Statement stmt=conn.createStatement(); //获取执行sql的对象
int count=stmt.executementUpdate(sql); //count为跟新的行数
System.out.println(count);
// stmt.close(); //释放资源
conn.close();
这个就是最基本的jdbc连接
------------------------------------------------------------------------------------------------------------------------------------------------------------
下面进行改进,因为很多步骤都是一样的,就不写的那么详细了
Connection conn=null;
Statement stmt=null;
try {
Class.forName("com.mysql.jdbc.Driver");
//获取连接对象
conn = DriverManager.getConnection("jdbc:mysql:///db3", "root", "123456");
//定义sql
String sql="create table student(id int,name varchar(20))";
//获取sql对象
stmt=conn.createStatement();
//执行sql
int count = stmt.executeUpdate(sql);
//处理结果
System.out.println(count);
if (count>0){ //因为count为执行的数量,执行了就大于0,
System.out.println("成功"); //没执行,淡然为0
}else {
System.out.println("失败");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally { //finally 一定会执行,所以把释放资源放在里面
//释放资源
if (stmt != null) { //防止出现空指针异常
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
--------------------------------------------------------------------------------------------------------------------------------------
看了这些,是不是感觉代码都好重复
有没有想到要做一个工具类,专门用来jdbc的连接
jdbc.properties //修改里面的数据,和自己要连接的数据库的设置一样就行
url=jdbc:mysql:///db3
user=root
password=123456
driver=com.mysql.jdbc.Driver
public class JdbcUtils{
private static String url;
private static String user;
private static String password;
private static String driver;
static { //静态代码块 随着类加载执行,而且只执行一次 都可以直接用
// 类初始化的时候执行一次,执行完成便销毁
try {
Properties pro=new Properties(); //创建Properties集合类 对象
ClassLoader classLoader = JdbcUtils.class.getClassLoader(); //获取jdbcUtils字节码文件对象
URL res = classLoader.getResource("jdbc.properties"); //通过文件名获得以src的相对根路径
String path = res.getPath(); //获得文件的绝对路径,
pro.load(new FileReader("path")); //加载文件
String url = pro.getProperty("url"); //对应的值
String user= pro.getProperty("user");
String password = pro.getProperty("password");
String diver = pro.getProperty("diver");
Class.forName(driver);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 获取连接对象
* @return
*/
public static Connection getConnection() throws SQLException {
Connection conn= DriverManager.getConnection("url","user","password");
return conn;
}
public static void close(Statement stmt, Connection conn, ResultSet rs){
if(stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (rs!=null){
try { //这个是ResultSet的对象,千万记得要和自己设置的名称一样
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
这就是一个jdbc的工具类 了,想连接的话,可以直接调用这个方法。是不是省略了许多步骤。当然,这个jdbc的连接类还可以更加简洁。