首页 > 开发 > Java > 正文

Java开发之Spring连接数据库方法实例分析

2024-07-13 09:55:48
字体:
来源:转载
供稿:网友

这篇文章主要介绍了Java开发之Spring连接数据库方法,以实例形式较为详细的分析了Java Spring开发中针对数据库的相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了Java开发之Spring连接数据库方法。分享给大家供大家参考,具体如下:

接口:

 

  1. package cn.com.service;  
  2. import java.util.List;  
  3. import cn.com.bean.PersonBean;  
  4. public interface PersonService {  
  5. //保存  
  6. public void save(PersonBean person);  
  7. //更新  
  8. public void update(PersonBean person);  
  9. //获取person  
  10. public PersonBean getPerson(int id);  
  11. public List<PersonBean> getPersonBean();  
  12. //删除记录  
  13. public void delete(int personid);  

Person Bean类:

 

 
  1. package cn.com.bean;  
  2. public class PersonBean {  
  3. private int id;  
  4. private String name;  
  5. public PersonBean(String name) {  
  6. this.name=name;  
  7. }  
  8. public int getId() {  
  9. return id;  
  10. }  
  11. public void setId(int id) {  
  12. this.id = id;  
  13. }  
  14. public String getName() {  
  15. return name;  
  16. }  
  17. public void setName(String name) {  
  18. this.name = name;  
  19. }  

接口实现:

 

 
  1. package cn.com.service.impl;  
  2. import java.util.List;  
  3. import javax.sql.DataSource;  
  4. import org.springframework.jdbc.core.JdbcTemplate;  
  5. import cn.com.bean.PersonBean;  
  6. import cn.com.service.PersonService;  
  7. public class PersonServiceImpl implements PersonService {  
  8. private JdbcTemplate jdbcTemplate;  
  9. public void setDataSource(DataSource dataSource) {  
  10. this.jdbcTemplate = new JdbcTemplate(dataSource);  
  11. }  
  12. @Override 
  13. public void save(PersonBean person) {  
  14. // TODO Auto-generated method stub  
  15. jdbcTemplate.update("insert into person(name) values(?)"new Object[]{person.getName()},  
  16. new int[]{java.sql.Types.VARCHAR});  
  17. }  
  18. @Override 
  19. public void update(PersonBean person) {  
  20. // TODO Auto-generated method stub  
  21. jdbcTemplate.update("update person set name=? where id=?"new Object[]{person.getName(),person.getId()},  
  22. new int[]{java.sql.Types.VARCHAR,java.sql.Types.INTEGER});  
  23. }  
  24. @Override 
  25. public PersonBean getPerson(int id) {  
  26. // TODO Auto-generated method stub  
  27. return (PersonBean)jdbcTemplate.queryForObject("select * from person where id=?"new Object[]{id},  
  28. new int[]{java.sql.Types.INTEGER},new PersonRowMapper() );  
  29. }  
  30. @SuppressWarnings("unchecked")  
  31. @Override 
  32. public List<PersonBean> getPersonBean() {  
  33. // TODO Auto-generated method stub  
  34. return (List<PersonBean>)jdbcTemplate.query("select * from person",  
  35. new PersonRowMapper() );  
  36. }  
  37. @Override 
  38. public void delete(int personid) {  
  39. // TODO Auto-generated method stub  
  40. jdbcTemplate.update("delete from person where id=?"new Object[]{personid}, 
  41. new int[]{java.sql.Types.INTEGER});  
  42. }  

RowMapper:

 

 
  1. package cn.com.service.impl;  
  2. import java.sql.ResultSet;  
  3. import java.sql.SQLException;  
  4. import org.springframework.jdbc.core.RowMapper;  
  5. import cn.com.bean.PersonBean;  
  6. public class PersonRowMapper implements RowMapper {  
  7. @Override 
  8. public Object mapRow(ResultSet rs, int index) throws SQLException {  
  9. // TODO Auto-generated method stub  
  10. PersonBean person =new PersonBean(rs.getString("name"));  
  11. person.setId(rs.getInt("id"));  
  12. return person;  
  13. }  

beans.xml配置

 

 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans" 
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  4. xmlns:context="http://www.springframework.org/schema/context" 
  5. xmlns:aop="http://www.springframework.org/schema/aop" 
  6. xmlns:tx="http://www.springframework.org/schema/tx" 
  7. xsi:schemaLocation="http://www.springframework.org/schema/beans  
  8. http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
  9. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd  
  10. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd  
  11. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd  
  12. ">  
  13. <!-- <context:property-placeholder location="classpath:jdbc.properties"/> --> 
  14. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">  
  15. <property name="driverClassName" value="com.mysql.jdbc.Driver"/>  
  16. <property name="url" value="jdbc:mysql://localhost:3306/wy"/>  
  17. <property name="username" value="root"/>  
  18. <!-- property池启动时的初始值 --> 
  19. <property name="password" value="123"/>  
  20. <!-- 连接name="initialSize" value="${initialSize}"/>--> 
  21. <property name="initialSize" value="1"/>  
  22. <!-- 连接池的最大值 --> 
  23. <property name="maxActive" value="500"/>  
  24. <!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 --> 
  25. <property name="maxIdle" value="2"/>  
  26. <!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 --> 
  27. <property name="minIdle" value="1"/>  
  28. </bean>  
  29. <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
  30. <property name="dataSource" ref="dataSource"/>  
  31. </bean>  
  32. <tx:annotation-driven transaction-manager="txManager"/>  
  33. <bean id="personService" class="cn.com.service.impl.PersonServiceImpl">  
  34. <property name="dataSource" ref="dataSource"></property>  
  35. </bean>  
  36. </beans>  

测试类:

 

 
  1. package Junit.test;  
  2. import static org.junit.Assert.*;  
  3. import org.junit.BeforeClass;  
  4. import org.junit.Test;  
  5. import org.springframework.context.ApplicationContext;  
  6. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  7. import cn.com.bean.PersonBean;  
  8. import cn.com.service.PersonService;  
  9. public class PersonTest2 {  
  10. private static PersonService personService;  
  11. @BeforeClass 
  12. public static void setUpBeforeClass() throws Exception {  
  13. ApplicationContext act=new ClassPathXmlApplicationContext("beans.xml");  
  14. personService=(PersonService) act.getBean("personService");  
  15. }  
  16. @Test 
  17. public void save() {  
  18. personService.save(new PersonBean("wyy"));  
  19. }  
  20. @Test 
  21. public void update() {  
  22. PersonBean person=personService.getPerson(1);  
  23. person.setName("wy");  
  24. personService.update(person);  
  25. }  
  26. @Test 
  27. public void getPerson() {  
  28. PersonBean person=personService.getPerson(1);  
  29. System.out.println(person.getName());  
  30. }  
  31. @Test 
  32. public void delete() {  
  33. personService.delete(1);  
  34. }  

数据库:

 

 
  1. Create Table 
  2. CREATE TABLE `person` (  
  3. `id` int(11) NOT NULL auto_increment,  
  4. `name` varchar(10) NOT NULL,  
  5. PRIMARY KEY (`id`)  
  6. ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 

希望本文所述对大家Java程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表