Este artículo presenta la operación Spring Development_JDBC de la base de datos MySQL, como sigue:
Estructura del proyecto:
Tabla de base de datos:
/spring_1100_spring+jdbc/src/com/b510/bean/person.java
paquete com.b510.bean;/** * Persona de clase Javabean normal * * @author Hongten * */public class Person {/** * Id Number */private int id; / ** * Nombre */ Nombre de cadena privada; / ** * edad */ private int Age; / ** * género */ sexo privado de cadena; Persona pública (int id, nombre de cadena, int Age, String Sex) {this.id = id; this.name = name; this.age = edad; this.sex = sexo; } Public Person () {} public int getId () {return id; } public void setid (int id) {this.id = id; } public String getName () {nombre de retorno; } public void setName (nombre de cadena) {this.name = name; } public int getAge () {return Age; } public void setAge (int Age) {this.age = edad; } public String getsex () {return sex; } public void setsex (sexo de cadena) {this.sex = sex; }} /spring_1100_spring+jdbc/src/com/b510/service/personservice.java
paquete com.b510.service; import java.util.list; import com.b510.bean.person; interfaz pública Personservice { / ** * Save Person * * @param Person * / public Abstract void save (persona persona); / ** * Actualizar persona * * @param Person */ Update de Void Public Abstract (persona persona); / ** * Obtener persona * * @param id * @return */ public abstract persona getperson (ID de entero); / ** * Obtener a toda la persona * * @return */ public abstract List <Oll> getperson (); / ** * Eliminar a la persona con la identificación especificada * * @param ID */ public abstract void Delete (ID de entero);} /spring_1100_spring+jdbc/src/com/b510/service/impl/personserviceBean.java
package com.b510.service.impl;import java.util.List;import javax.sql.DataSource;import org.springframework.jdbc.core.JdbcTemplate;import com.b510.bean.Person;import com.b510.service.PersonService;/** * Business bean * * @author Hongten * */public class PersonserviceBean implementa Personservice { / ** * Fuente de datos * / DataSource DataSource de datos privados; / *** JDBC Operación Clase auxiliar proporcionada por Spring*/ Private JDBCTemplate JDBCTemplate; // Establecer la fuente de datos public void setDataSource (DataSource DataSource) {this.jdbctemplate = new JDBCTemplate (DataSource); } public void save (persona persona) {jdbctemplate.update ("Inserte en persona (nombre, edad, sexo) valores (?,?,?)", nuevo objeto [] {persona.getName (), persona.getage (), persona.getsex ()}, new int [] {java.sql.types.varchar, java.sql.types.types. java.sql.types.varchar}); } Public void Update (persona persona) {jdbctemplate.update ("actualizar el nombre de la persona name =?, edad =?, sex =? donde id =?", New Object [] {Person.getName (), Person.getage (), Person.getSEx (), Person.getID ()}, New INTR [] {java.sql.types.var, var, java.sql.types.integer, java.sql.types.varchar, java.sql.types.integer}); } Public Person GetPerson (ID de entero) {persona persona = (persona) jdbctemplate.queryForObject ("Seleccione * de persona donde id =?", Nuevo objeto [] {id}, nuevo int [] {java.sql.types.integer}, New PersonRowMapper ()); persona de regreso; } @Suppleswarnings ("sin verificar") Lista pública <OlPER> getPerson () {list <OlPER> list = jdbctemplate.query ("Seleccionar * de persona", nuevo PersonRowMapper ()); lista de devolución; } public void delete (ID de entero) {jdbctemplate.update ("Eliminar de la persona donde id =?", nuevo objeto [] {id}, nuevo int [] {java.sql.types.integer}); }} /spring_1100_spring+jdbc/src/com/b510/service/impl/personrowmapper.java
paquete com.b510.service.impl; import java.sql.ResultSet; import java.sql.sqlexception; import org.springframework.jdbc.core.rowmapper; import com.b510.bean.person; persona de clase pública sqlowmapper implementa rowmapper {@override maprow (set de statsset sttymets stats stats stats stats sqlexcent) {Persona persona = nueva persona (set.getInt ("id"), set.getString ("name"), set .getInt ("edad"), set.getString ("sexo")); persona de regreso; }} /spring_1100_spring+jdbc/src/com/b510/test/springjdbctest.java
paquete com.b510.test; import java.util.list; import org.springframework.context.applicationContext; import org.springframework.context.support.classpathxmlaPplicationContext; import Com.B510.Bean.person; import Com.B510.Service.personserSerService; static void main (string [] args) {ApplicationContext Act = new ClassPathXMLApPlicationContext ("Bean.xml"); PERSONES Servicio de personas. Persona persona = nueva persona (); persona.setName ("Su Dongpo"); Person.setage (21); persona.setsex ("hombre"); // Guardar un servicio récord de personas.save (persona); Lista <Oll> Person1 = Personservice.getPerson (); System.out.println ("+++++++++ Get TODOS las personas"); para (persona persona2: persona1) {system.out.println (persona2.getid () + "" + persona2.getName () + "" + persona2.getage () + "" + persona2.getsex ()); } Persona updatePerson = nueva persona (); updatePerson.setName ("divide"); updatePerson.setage (20); updatePerson.setSex ("hombre"); updatePerson.setId (5); // Actualizar un registro Personservice.Update (UpdatePerson); System.out.println ("******************"); // Obtener una persona registrada OnePerson = Personservice.getPerson (2); System.out.println (OnePerson.getId () + "" + OnePerson.getName () + "" + OnePerson.getage () + "" + OnePerson.getSex ()); // Eliminar un servicio récord de personas. Delete (1); }} /spring_1100_spring+jdbc/src/bean.xml
<? xml versión = "1.0" encoding = "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://wwww.springframework.org/sChMing" " xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/contextExt 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/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springfframework.org/schema/tx/spring-tx-2.5.xsd "<! <bean id = "dataSource" destruye-method = "cerrar"> <propiedad name = "conductorClassName" value = "org.gjt.mm.mysql.driver"/> <propiedad name = "url" value = "jdbc: mysql: // localhost: 3307/spring? UseUnicode = true & caractering = utf-8"/> <<product name " /> <Property Name = "Password" Value = "Root" /> <!-Valor inicial Cuando el grupo de conexión se inicia-> <Property Name = "InitialSize" Value = "1" /> <!-Valor máximo del grupo de conexión-> <Property Name = "Maxactive" Value = "300" /> <!-Valor de inactividad máximo. Después de una hora pico, el grupo de conexión puede liberar lentamente algunas de las conexiones no utilizadas y reducirlas hasta Maxidle-> <propiedad name = "maxidle" value = "2" /> <!-Valor inactivo mínimo. Cuando el número de conexiones inactivas es menor que el umbral, el grupo de conexión se aplicará previamente para que algunas conexiones eviten el tiempo de aplicar cuando llegue el pico de inundación-> <propiedad name = "minidle" value = "1" /> < /bean> <!-Use anotación para configurar las transacciones. Para el administrador de transacciones de la fuente de datos, inyecte la fuente de datos que definimos en la propiedad de datos de la clase DataSourCetransactionManager-> <bean id = "txManager"> <propiedad name = "dataSource" ref = "dataSource" /> < /bean> <!-Introducir el espacio de nombres: 1.xmlns: tx = "http://www.springframework.org/schema/tx 2.http: //www.springframework.org/schema/tx http://www.springfframework.orgsschema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd Use la anotación @Transaction para usar el administrador de transacciones-> <tx: anotación transaccion-manager = "txmanager"/> <! DataSource-> <Property Name = "DataSource" ref = "DataSource"> </property> </le bean> </les>
Ejecución de resultados;
2012-3-9 23:30:57 org.springframework.context.support.abstractApplicationContext PrepareFresh Información: Refrescante org.springframework.context.support.classpathxmlapplicationContext@1a05308: Mostrar nombre de nombre [org.springframework.context.support.classpathxmlapplicationcontext@1a05308]; Fecha de inicio [viernes 09 de marzo 23:30:57 CST 2012]; Raíz del contexto Jerarquía2012-3-3-9 23:30:57 org.springframework.beans.factory.xml.xmlbeandefinitionRition Reader LoadBeanDefinitions Información: Carga de definiciones de frijoles XML desde la clase Rath Resource [bean.xml] 2012-3-3 23:30:58 org.springframework.context.support.abstractApplicationContext Información obtenfreshBeanFactory: Bean Factory para el contexto de la aplicación [org.springframework.context.support.classpathxmlaPplicationContext@1a05308]: org.springframework.beans.factory.support.defaultListableBeanfactory@2bb5142012-3-9 23:30:58 org.springframework.beanss.factory.support.defaultListableBeanFactory preinstantiatesingleton org.springframework.beans.factory.support.defaultListableBeanfactory@2BB514: Definición de frijoles [DataSource, TXManager, org.springframework.aop.config.internalautoproxycreator, org.springframework.transaction.annotation.annotationTransactionAttributesururur CE#0, org.springframework.transaction.interceptor.transactionInterceptor#0, org.springframework.transaction.config.internaltransactionAdvisor, Personservice]; raíz de la jerarquía de fábrica ++++++++++++ Obtenga todas las personas 2 Tomcat 12 Hembra 3 Hongten 21 Macho 4 Liufang 21 Femenino 5 Divide 20 Masculino 6 Jone 20 Mujer 7 Su Dongpo 21 Masculino ******************* 2 Tomcat 12 Femenino Femenino
Por supuesto, podemos usar archivos de configuración para almacenar nuestra información de origen de datos:
/spring_1100_spring+jdbc/src/jdbc.properties
conductorClassName = org.gjt.mm.mysql.driverurl = jdbc/: mysql/: // localhost/: 3307/spring? UseUnicode/= true & caracterSencoding/= utf-8USername = rootpassword = rootInitialSize = 1Maxactive = 300Maxidle = 2minidle = 1 1 1 1
Correspondientemente a modificar:
/spring_1100_spring+jdbc/src/bean.xml
<? xml versión = "1.0" encoding = "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://wwww.springframework.org/sChMing" " xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/contextExt 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/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springfframework.org/schema/tx/spring-tx-2.5.xsd " JDBC.Properties FILE DE CONFIGURACIÓN-> <context: Property-placeholder ubicación = "classpath: jdbc.properties" /> <!-Fuente de datos de configuración-> <bean id = "dataSource" destruye-method = "cierre"> <Property Name = "DriverClassNeN" Value = "$ {controlador de controlador name = "username" value = "$ {username}" /> <propiedad name = "contraseña" valor = "$ {contraseña}" /> <!-valor inicial cuando el grupo de conexión inicia-> <propiedad name = "inicialsize" value = "$ {inicialsize}" /> <!-valor máximo del grupo de conexión-> <name de la propiedad = "value" mAxactive "value =" $ {maAxActive {MAXACTIV valor. Después de una hora pico, el grupo de conexión puede liberar lentamente la parte de las conexiones no utilizadas, reduciendo hasta Maxidle-> <Property name = "maxidle" value = "$ {maxidle}" /> <!-Valor inactivo mínimo. Cuando el número de conexiones inactivas es menor que el umbral, el grupo de conexión se aplicará previamente para que algunas conexiones eviten el tiempo de aplicar cuando llegue el pico de inundación-> <propiedad name = "minidle" value = "$ {minidle}" /> < /bean> <!-Use anotación para configurar las transacciones. Para el administrador de transacciones de la fuente de datos, inyecte la fuente de datos que definimos en la propiedad de datos de la clase DataSourCetransactionManager-> <bean id = "txManager"> <propiedad name = "dataSource" ref = "dataSource" /> < /bean> <!-Introducir el espacio de nombres: 1.xmlns: tx = "http://www.springframework.org/schema/tx 2.http: //www.springframework.org/schema/tx http://www.springfframework.orgsschema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd Use la anotación @Transaction para usar el administrador de transacciones-> <tx: anotación transaccion-manager = "txManager"/> <! DataSource-> <Property Name = "DataSource" ref = "DataSource"> </property> </le bean> </les> Los resultados de la ejecución son los mismos:
2012-3-10 0:23:59 org.springframework.context.support.abstractApplicationContext PrepareFresh Información: Refrescante org.springframework.context.support.classpathxmlapplicationContext@c1b531: Nombre de pantalla de visualización [org.springframework.context.support.classpathxmlapplicationcontext@c1b531]; Fecha de inicio [SAT 10 de marzo 00:23:59 CST 2012]; Raíz del contexto jerarquía2012-3-10 0:23:59 org.springframework.beans.factory.xml.xmlBeanDefinitionReader LoadBeanDefinitions Información: Carga de definiciones XML de frijoles desde la ruta de clases [bean.xml] 2012-3-10 0:23:59 org.springframework.context.support.abstractApplicationContext Información obtenfreshBeanFactory: Bean Factory para el contexto de la aplicación [org.springframework.context.support.classpathxmlaPplicationContext@c1b531]: org.springframework.beans.factory.support.defaultListableBeanfactory@1aa57fb2012-3-10 0:23:59 org.springframework.core.io.support.properties loadersupport loadpreperties Información: Carga de propiedades de propiedades de la clase 0:23:59 org.springframework.beans.factory.support.defaultListableBeanFactory preinstantiatesingletons Información: preinstantantes singletons en org.springframework.beanss.factory.support.defaultListableBeanFactory@1AA57fb: definición [org.springframework.beans.factory.config.propertyplaceholderConfigurer#0, DataSource, TXManager, org.springframework.aop.config.internalautoproxycreator, org.springfframework.transaction.annotati on.annotationTransactionAttributesurce#0, org.springframework.transaction.interceptor.transactionInterceptor#0, org.springframework.transaction.config.internaltransactionAdvisor, Personservice]; raíz de la jerarquía de fábrica +++++++++++++++ Obtén a todas las personas 2 Tomcat 12 Femenino 3 Hongten 21 Macho 4 Liufang 21 Femenino 5 Divide 20 Masculino 6 Jone 20 Mujer 7 Su Dongpo 21 Macho 8 Su Dongpo 21 Masculino ***************************** 2 Tomcat 12 Hembra 12 Hembra 12
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.