В этой статье описывается метод подключения к базе данных Spring, разработанный на Java. Поделитесь им со всеми для справки, подробности следующие:
интерфейс:
пакет cn.com.service; import java.util.List; import cn.com.bean.PersonBean; общедоступный интерфейс PersonService { //Сохранить public void save(PersonBean person); //Обновить public void update(PersonBean person); /Get person public PersonBean getPerson(int id); public List<PersonBean> getPersonBean(); //Удалить запись public void delete(int personid);
Класс Person Bean:
пакет cn.com.bean; общественный класс PersonBean {частное имя String; общественное PersonBean (имя строки) { this.name = name; } public int getId () { возвращаемый идентификатор; } public void setId (int id) { this.id = id; } public String getName () { возвращаемое имя } public void setName (имя строки) { this.name = name } }
Реализация интерфейса:
пакет cn.com.service.impl; импорт javax.sql.DataSource; импорт org.springframework.jdbc.core.JdbcTemplate; импорт cn.com.bean.PersonBean; PersonService; общественный класс PersonServiceImpl реализует PersonService {частный JdbcTemplate jdbcTemplate общественный недействительный setDataSource (DataSource; dataSource) { this.jdbcTemplate = new JdbcTemplate(dataSource); } @Override public void save(PersonBean person) { // TODO Автоматически сгенерированная заглушка метода jdbcTemplate.update("insert in person(name)values(?)", new Object[]{person.getName()}, новый int[]{java.sql.Types.VARCHAR}); @Override public void update(PersonBean person) { // TODO Автоматически сгенерированная заглушка метода jdbcTemplate.update("обновить набор лиц name=? где id=?", new Object[]{person.getName(),person.getId( )}, new int[]{java.sql.Types.VARCHAR,java.sql.Types.INTEGER}); @Override public PersonBean getPerson(int id) { // TODO Автоматически сгенерированная заглушка метода return (PersonBean)jdbcTemplate.queryForObject("select * from person, где id=?", new Object[]{id}, new int[]{java.sql. Types.INTEGER},new PersonRowMapper() } @SuppressWarnings("непроверено") @Override public); List<PersonBean> getPersonBean() { // TODO Автоматически созданная заглушка метода return (List<PersonBean>)jdbcTemplate.query("select * from person", new PersonRowMapper() } @Override public void delete(int personid) { // TODO Автоматически сгенерированная заглушка метода jdbcTemplate.update("удалить от человека, где id=?", new Object[]{personid}, new int[]{java.sql.Types.INTEGER});
РоуМаппер:
пакет cn.com.service.impl; импорт java.sql.SQLException; импорт org.springframework.jdbc.core.RowMapper; импорт cn.com.bean.PersonBean; открытый класс PersonRowMapper реализует RowMapper { @ Переопределить public Object mapRow(ResultSet rs, int index) выдает SQLException { // TODO Автоматически созданная заглушка метода PersonBean person =new PersonBean(rs.getString("name")); person.setId(rs.getInt("id"); return person;
Конфигурация beans.xml
<?xml version="1.0"coding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org /2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework .org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring- aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd "> <!-- <context:property-placeholder location="classpath:jdbc.properties"/> --> <bean id ="dataSource" уничтожить-метод="закрыть"> <имя свойства="driverClassName" value="com.mysql.jdbc.Driver"/> <имя свойства="url" value="jdbc:mysql://localhost:3306/wy"/> <property name="username" value="root"/> <!-- Начальное значение при запуске пула свойств--> <имя свойства ="password" value="123"/> <!-- Connection name="initialSize" value="${initialSize}"/>--> <property name="initialSize" value="1"/> <!-- Максимальное значение пула соединений--> <property name="maxActive" value="500"/> <!-- Максимальное значение простоя После пикового времени пул соединений может постепенно исчерпаться. . Входящее соединение медленно частично освобождается, пока оно не уменьшится до maxIdle--> <property name="maxIdle" value="2"/> <!--. Минимальное значение простоя. Когда количество простаивающих соединений меньше порогового значения, пул соединений предварительно подает заявку на некоторые соединения, чтобы избежать невозможности применить ее при наступлении пика --> <property name="minIdle" value="1". "/> </ bean> <bean id="txManager"> <property name="dataSource" ref="dataSource"/> </bean> <tx:annotation-driven Transaction-manager="txManager"/> <bean id="personService"> <property name="dataSource" ref="dataSource"></property> </bean> </beans>
Тестовый класс:
пакет Junit.test; импорт статический org.junit.BeforeClass; импорт org.junit.Test; импорт org.springframework.context.ApplicationContext; импорт org.springframework.context.support.ClassPathXmlApplicationContext; cn.com.bean.PersonBean импорт cn.com.service.PersonService общественный класс PersonTest2 {; частный статический PersonService personService; @BeforeClass public static void setUpBeforeClass() выдает исключение {ApplicationContext act=new ClassPathXmlApplicationContext("beans.xml"); personService=(PersonService) act.getBean("personService" } @Test public void save("); ) { personService.save(new PersonBean("wyy") } @Test public void update() { PersonBean person=personService.getPerson(1); person.setName("wy"); personService.update(person); @Test public void getPerson() { PersonBean person=personService.getPerson(1); person.getName()); } @Test public void delete() { personService.delete(1 } };
база данных:
Создать таблицу CREATE TABLE `person` ( `id` int(11) NOT NULL auto_increment, `name` varchar(10) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
Я надеюсь, что эта статья будет полезна всем, кто занимается программированием на Java.