Spring之ioc連線資料庫的一個小案例
阿新 • • 發佈:2021-03-23
用到的包:
spring5
spring-test
dbutils
mysql
c3p0
junit
1.配置pom.xml
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.2</version>
</dependency >
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.3.2</version>
</dependency>
<dependency>
<groupId>commons-dbutils</ groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
< version>5.1.32</version>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
2.配置spring的配置類
建立一個config包
2個類
SpringConfig
JdbcConfig
@Configuration
@ComponentScan("top.chenyp")
@Import(JdbcConfig.class)
@PropertySource("classpath:jdbc.properties")
public class SpringConfig {}
public class JdbcConfig {
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.user}")
private String user;
@Value("${jdbc.psd}")
private String psd;
//建立runner
@Bean
QueryRunner createQueryRunner(DataSource ds){
return new QueryRunner(ds);
}
//建立DataSource
@Bean
DataSource createDataSource(){
ComboPooledDataSource ds =new ComboPooledDataSource();
try {
ds.setDriverClass(driver);
ds.setJdbcUrl(url);
ds.setUser(user);
ds.setPassword(psd);
} catch (PropertyVetoException e) {
e.printStackTrace();
}
return ds;
}
}
3.建立實體類
package top.chenyp.pojo;
import java.io.Serializable;
public class User implements Serializable {
private Integer id;
private String username;
private String password;
private String gender;
private String city;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", gender='" + gender + '\'' +
", city='" + city + '\'' +
'}';
}
}
4.建立properties檔案配置jdbc的資訊
jdbc.driver= com.mysql.jdbc.Driver
jdbc.url= jdbc:mysql:///test
jdbc.user= root
jdbc.psd= Cyp123..
5.測試類,測試
spring整合junit
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfig.class)
public class Test {
@Autowired
private QueryRunner runner;
@org.junit.Test
public void test1(){
String sql ="select * from user";
try {
List<User> users = runner.query(sql, new BeanListHandler<User>(User.class));
for (User user : users) {
System.out.println(user);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
最後的執行結果,over!!!