一:项目结构
二:源代码
1.utils工具类,创建连接池
package cn.itcast.utils;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
public class Jdbcutiles {
//1.定义成员变量DataSource
private static DataSource ds;
static {
Properties pro = new Properties();
try {
URL rs = Jdbcutiles.class.getClassLoader().getResource("cn/itcast/utils/druid.properties");
String path = rs.getPath();
pro.load(new FileReader(path));
// pro.load(Jdbcutiles.class.getClassLoader().getResourceAsStream("cn/itcast/utils/druid.properties"));
ds = DruidDataSourceFactory.createDataSource(pro);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
/*
*获取连接
*/
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
public static DataSource getDataSource(){
return ds;
}
}
2.Domain表示sql数据结构类
package cn.itcast.Domain;
public class Domain {
private int id;
private String NAME;
private int balance;
@Override
public String toString() {
return "Domain{" +
"id=" + id +
", NAME='" + NAME + '\'' +
", balance=" + balance +
'}';
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNAME() {
return NAME;
}
public void setNAME(String NAME) {
this.NAME = NAME;
}
public int getBalance() {
return balance;
}
public void setBalance(int balance) {
this.balance = balance;
}
}
3.spring 提供的JdbcTemplate类
package cn.itcast.Template_jdbc;
import cn.itcast.utils.Jdbcutiles;
import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
public class template_jdbc_test {
private JdbcTemplate template = new JdbcTemplate(Jdbcutiles.getDataSource());
@Test
public void test1(){
String sql = "update account set balance = 9999 where id = 1";
int count = template.update(sql);
System.out.println(count);
}
}
3.bug错误原因
如果将properties放在utils包下,那么必须在getResource里边加上它在src里边的绝对路径,不然读取不到properties属性类文件,会出现空指针异常错误。
如果不想写上在src里边的绝对路径,那么就直接放在src的根目录下,这样就好啦,但是不能放到项目根目录下,也会出bug。