@Configuration
public class DataSourceConfig {
@Bean(name = "dataSource")
public DataSource dataSource(){
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/userinfo?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false");
dataSource.setUsername("root");
dataSource.setPassword("");
return dataSource;
}
@Bean(name = "dbcp")
public DataSource dbcp(){
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/userinfo?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false");
dataSource.setUsername("root");
dataSource.setPassword("");
dataSource.setInitialSize(5);
dataSource.setMaxIdle(10);
return dataSource;
}
@Bean(name = "c3p0")
public DataSource c3p0() throws PropertyVetoException {
ComboPooledDataSource dataSource = new ComboPooledDataSource();
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/userinfo?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false");
dataSource.setUser("root");
dataSource.setPassword("");
dataSource.setInitialPoolSize(5);
dataSource.setMaxPoolSize(10);
return dataSource;
}
@Bean(name = "druid")
public DataSource druid() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/userinfo?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false");
dataSource.setUsername("root");
dataSource.setPassword("");
dataSource.setInitialSize(5);
dataSource.setMaxActive(10);
return dataSource;
}
@Bean
public JdbcTemplate jdbcTemplate(){
JdbcTemplate template = new JdbcTemplate(dataSource());
return template;
}
@Bean
public NamedParameterJdbcTemplate namedParameterJdbcTemplate(){
NamedParameterJdbcTemplate template = new NamedParameterJdbcTemplate(dbcp());
return template;
}
}
使用JDBC
@Component
public class UserServiceUseJDBC {
@Autowired
@Qualifier("dataSource")
private DataSource dataSource;
public void insert(User user){
Connection connection = null;
PreparedStatement statement = null;
String sql = "insert into user(name,account,password,gender) values(?,?,?,?)";
try {
connection = dataSource.getConnection();
statement =connection.prepareStatement(sql);
statement.setString(1,user.getName());
statement.setString(2,user.getAccount());
statement.setString(3,user.getPassword());
statement.setString(4,user.getGender());
statement.execute();
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
if(statement!=null) {
statement.close();
}
if(connection!=null){
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
使用JDBC模板
@Component
public class UserServiceUseTemplate {
@Autowired
private JdbcTemplate template;
public void insert(User user){
String sql = "insert into user(name,account,password,gender) values(?,?,?,?)";
template.update(sql,user.getName(),user.getAccount(),user.getPassword(),user.getGender());
}
}
@Component
public class UserServiceUseTemplate {
@Autowired
private JdbcTemplate template;
@Autowired
private NamedParameterJdbcTemplate namedTemplate;
public void insert(User user){
String sql = "insert into user(name,account,password,gender) values(:name,:account,:password,:gender)";
Map<String,Object> params = new HashMap<>();
params.put("name",user.getName());
params.put("account",user.getAccount());
params.put("password",user.getPassword());
params.put("gender",user.getGender());
namedTemplate.update(sql,params);
}
}
使用DAO支持类
网友评论