Este artigo apresenta a operação Spring Development_JDBC do banco de dados MySQL, como segue:
Estrutura do projeto:
Tabela de banco de dados:
/spring_1100_spring+jdbc/src/com/b510/bean/person.java
pacote com.b510.bean;/** * Pessoa de classe Javabean normal * * @Author Hongten * */Public Class Person {/** * Número de Id */Private Int ID; / ** * nome */ nome da string privada; / ** * idade */ private int Age; / ** * gênero */ sexo privado de cordas; Pessoa pública (int id, nome da string, idade int, sexo de cordas) {this.id = id; this.name = nome; this.age = idade; this.sex = sexo; } public Person () {} public int getId () {return id; } public void setId (int id) {this.id = id; } public string getName () {return name; } public void setName (nome da string) {this.name = name; } public int getage () {Age de retorno; } public void setage (int Age) {this.age = Age; } public string getSex () {return Sex; } public void SetSex (sexo de string) {this.sex = sexo; }} /spring_1100_spring+jdbc/src/com/b510/service/personservice.java
pacote com.b510.service; importar java.util.list; importar com.b510.bean.person; interface pública persevice { / ** * salvar pessoa * * @param pessoa * / public resumo void (pessoa pessoa); / ** * Atualizar pessoa * * @param pessoa */ public abstrate void update (pessoa pessoa); / ** * Get Pessoa * * @param id * @return */ public abstract Person getPerson (ID inteiro); / ** * Obtenha toda a pessoa * * @Return */ Public Abstract List <Pesso> getPerson (); / ** * Exclua a pessoa com o ID especificado * * @param id */ public abstrato void delete (ID inteiro);} /spring_1100_spring+jdbc/src/com/b510/service/impl/personservicebean.java
pacote com.b510.service.impl; importar java.util.list; importar javax.sql.datasource; importar org.springframework.jdbc.core.jdbctemplate; import com.b510.bean.person; import.b510.service.persrice; PERSOnserviceBean implementa o PERSONSERVICE { / ** * Fonte de dados * / Private DataSource DataSource; / *** JDBC Operação Classe Auxiliar fornecida por Spring*/ Private JDBCTemplate JDBCTemplate; // Defina a fonte de dados public void SetDataSource (DataSource DataSource) {this.jdbcTemplate = new JDBCTemplate (DataSource); } public void save (pessoa pessoa) {jdbctemplate.update ("inserir na pessoa (nome, idade, sexo) valores (?,? ,?)", new objeto [] {Pessoas java.sql.types.varchar}); } public void update (pessoa pessoa) {jdbctemplate.UpDate ("Atualizar nome do conjunto de pessoas =?, idade =?, sexo =? Onde id =?", new Object [] {PERSON.GETNAME (), PERSON.GETAGE (), PERSON.GETSEX (), PERSON.GETID ()}, NEWCHAR (Java.SQL.SQL.SQla. java.sql.types.integer, java.sql.types.varchar, java.sql.types.integer}); } pessoa pública getPerson (ID inteiro) {pessoa pessoa = (pessoa) jdbctemplate.queryForObject ("selecione * da pessoa onde id =?", new Object [] {id}, new int [] {java.sql.types.integer}, new PersonRowmapper ()); pessoa de volta; } @Suppresswarnings ("desmarcado") Lista pública <Pesso> getPerson () {list <Soper> list = jdbctemplate.query ("Selecione * da pessoa", new PersonRowmapper ()); lista de retorno; } public void DELETE (ID INTEGER) {jdbcTemplate.UpDate ("Excluir da pessoa onde id =?", novo objeto [] {id}, new int [] {java.sql.types.integer}); }} /spring_1100_spring+jdbc/src/com/b510/service/impl/personrowmapper.java
pacote com.b510.ervice.impl; importar java.sql.resultset; importar java.sql.sqLexception; importar org.springframework.jdbc.core.RowMapper; importação com.b510.Bean.Person; Public PERSOWMAPPERSETSPPPSAPPER; Pessoa pessoa = nova pessoa (set.getInt ("id"), set.getString ("nome"), set .getint ("idade"), set.getString ("sexo")); pessoa de volta; }} /spring_1100_spring+jdbc/src/com/b510/test/springjdbctest.java
pacote com.b510.test; importar java.util.list; importar org.springframework.context.applicationContext; importar org.springframework.context.support.classPathXMLApplicationContext; import.b510.bean.persson; com.bath510.b510.BerSt.Bert.BerSt.BerSt.BSTPATH510.BSTROT.BSTPATC510.BER.BSONSC510.BSONDS.BST.B510; estático void main (string [] args) {ApplicationContext Act = new ClassPathXMLApplicationContext ("bean.xml"); Persevice Persenservice = (PersonService) Act .getBean ("Persevérito"); Pessoa pessoa = nova pessoa (); pessoa.setName ("su Dongpo"); Person.setage (21); pessoa.SetSex ("masculino"); // salvar um recorde de persevice.save (pessoa); List <Pesso> Pessoa1 = Persenservice.getPerson (); System.out.println ("++++++++ obtém todas as pessoas"); para (Person Pessoa2: Person1) {System.out.println (Person2.getId () + "" + Person2.getName () + "" + Person2.getage () + "" + Person2.getSex ()); } Pessoa updatePerson = new Person (); updatePerson.SetName ("Divide"); updatePerson.setage (20); updatePerson.SetSex ("masculino"); updatePerson.setId (5); // Atualize um registro persevice.update (updatePerson); System.out.println ("******************"); // Obtenha uma pessoa recorde OnePerson = PersOnservice.getPerson (2); System.out.println (OnePerson.getId () + "" + OnePerson.getName () + "" + OnePerson.getage () + "" + OnePerson.getSex ()); // Exclua um recorde de PERSONSERVICE.DELETE (1); }} /spring_1100_spring+jdbc/src/bean.xml
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http:/wwww.w3 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-bans-2.xsd http://wwwem 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.springframework.org/schema/tx/spring-tx-2.5.xsd"> <!--Configuration Data Fonte-> <bean id = "dataSource" de destruir-method = "close"> <propriedade name = "driverclassName" value = "org.gjt.mm.mysql.driver"/> <propriedade name = "url" valueNicode = "jdbc: mysql: // localHost: 3307/spring? value = "root" /> <propriedade name = "senha" value = "root" /> <!-Valor inicial Quando o pool de conexão é iniciado-> <propriedade name = "InitialSize" value = "1" /> <!-Valor máximo do pool de conexão-> <nome da propriedade = "maxactive" value = "300" /> <!-Maximum Idle Value. Após um horário de pico, o pool de conexões pode liberar lentamente algumas das conexões não utilizadas e reduzi-las até maximizar-> <nome da propriedade = "maxidle" value = "2" /> <!-valor ocioso mínimo. Quando o número de conexões ociosas for menor que o limite, o pool de conexões será pré-aplicável para obter algumas conexões para evitar o tempo para aplicar quando o pico da inundação chegar-> <Property name = "minidle" value = "1" /> </i bean> <!-use a anotação para configurar transações. Para o gerente de transações da fonte de dados, injete a fonte de dados que definimos na área de dados da propriedade da classe DataSourCetransactionManager-> <bean id = "txManager"> <propriedade name = "DataSource" ref = "DataSource" /> </ Bean> <!-Introduçar o nome de nome: 1.xmlns: tx = "http://www.springframework.org/schema/tx 2.http: //www.springframework.org/schema/tx http://www.springframwork.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd Use a anotação @Transaction para usar o gerenciador de transações-> <!-IDIVENTATATATION-DRUSTIOND-MANAGER = "TXManager"/<!-Configre Service Bean:) na propriedade DataSource-> <Nome da propriedade = "DataSource" Ref = "DataSource"> </Property> </Bean> </Beans>
Resultados em execução;
2012-3-9 23:30:57 org.springframework.context.support.abstractApplicationContext PrepareRefresh Informações: refrescante org.springframework.context.support.classpathxmlapplicationContext@1a05308: Nome [org.springframework.context.support.classpathxmlapplicationContext@1a05308]; Data de inicialização [sex 09 de março 23:30:57 CST 2012]; Raiz do contexto Hierarquia2012-3-9 23:30:57 org.springframework.beans.factory.xml.xmlbeandEfinitionReader LoadBeandEfinitions Informações: Carregando definições XML de feijão do recurso de caminho [bean.xml] 2012-9 23:30:58 org.springframework.context.support.abstractApplicationContext Obtenha Informações Factorais: Fábrica Bean para Contexto do Aplicativo [org.springframework.context.support.classpathxmlapplicationContext@1a05308]: org.springframework.beans.factory.support.DefaultListableBeanFactory@2bb5142012-3-9 23:30:58 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons Information: Pre-instantiating singletons in org.springframework.beans.factory.support.defaultListableBeanFactory@2BB514: Definindo Beans [DataSource, txManager, org.springframework.aop.config.internalautoproxycreator, org.springframework.transaction.annotation.annotationtransactionAttributesour CE#0, org.springframework.transaction.intercept.transactionIntercept#0, org.springframework.transaction.config.internaltransactionAdvisor, Persenservice]; Raiz da hierarquia da fábrica ++++++++++ obtenha toda a pessoa 2 tomcat 12 fêmea 3 hongten 21 masculino 4 liufang 21 fêmea 5 dividir 20 masculino 6 jone 20 fêmea 7 su um dongpo 21 masculino ************************ 2 Tomcat 12 fêmea 12 fêmea
Obviamente, podemos usar arquivos de configuração para armazenar nossas informações de fonte de dados:
/spring_1100_spring+jdbc/src/jdbc.properties
driverclassName = org.gjt.mm.mysql.driverurl = jdbc/: mysql/: // localhost/: 3307/spring? useunicode/= true & caracterEncoding/= utf-8username = rootpassword = rootinitialSize = 1MaxActive = 300midle
Correspondentemente para modificar:
/spring_1100_spring+jdbc/src/bean.xml
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http:/wwww.w3 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-bans-2.xsd http://wwwem 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 O jdbc.properties configuration file --> <context:property-placeholder location="classpath:jdbc.properties" /> <!--Configuration Data Source--> <bean id="dataSource" destroy-method="close"> <property name="driverClassName" value="${driverClassName}" /> <property name="url" value="${url}" /> <propriedade name = "nome de usuário" value = "$ {nome de usuário}" /> <propriedade name = "senha" value = "$ {senha}" /> <!-valor inicial quando o pool de conexão inicia-> <names name = "inicialsize") Valor inativo máximo. Após um horário de pico, o pool de conexões pode liberar lentamente parte das conexões não utilizadas, reduzindo até maxidle-> <propriedade name = "maxidle" value = "$ {maxidle}" /> <!-valor ocioso mínimo. Quando o número de conexões ociosas for menor que o limite, o pool de conexões será pré-aplicável para obter algumas conexões para evitar o tempo para aplicar quando o pico da inundação chegar-> <propriedade name = "minidle" value = "$ {Minidle}" /> </shean> <!-use anotação para configurar transações. Para o gerente de transações da fonte de dados, injete a fonte de dados que definimos na área de dados da propriedade da classe DataSourCetransactionManager-> <bean id = "txManager"> <propriedade name = "DataSource" ref = "DataSource" /> </ Bean> <!-Introduçar o nome de nome: 1.xmlns: tx = "http://www.springframework.org/schema/tx 2.http: //www.springframework.org/schema/tx http://www.springframwork.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd Use a anotação @Transaction para usar o gerenciador de transações-> <!-IDIVENTATATATION-DRUSTIOND-MANAGER = "TXManager"/<!-Configre Service Bean:) na propriedade DataSource-> <Nome da propriedade = "DataSource" Ref = "DataSource"> </Property> </Bean> </Beans> Os resultados da execução são os mesmos:
2012-3-10 0:23:59 org.springframework.context.support.abstractApplicationContext PrepareRefresh Informações: refrescante org.springframework.context.support.classPathXMLApplicationContext@c1b531: nome do nome [org.springframework.context.support.classpathxmlapplicationContext@c1b531]; Data de inicialização [SAT 10 00:23:59 CST 2012]; Raiz do contexto Hierarquia2012-3-10 0:23:59 org.springframework.beans.factory.xml.xmlbeanndefinition Reader LoadBeanDefinitions Informações: Carregando Definições XML de Bean do recurso de caminho da classe [Bean.xml] 2012-3-3-10 0:23:599 org.springframework.context.support.abstractApplicationContext obtémfreshBeanFactory Informações: Fábrica de Bean para o contexto do aplicativo [org.springframework.context.support.classpathxmlapplicationContext@c1b531]: org.springframework.beans.factory.support.defaultListableBeanFactory@1aa57fb2012-3-10 0:23:59 org.springframework.core.io.support.propertiesloadesPorpt Information.Core.Obring.Support.PropertiesLoadeRPorpt Informaties: Pathing Pathing Pathing Pathlens 0:23:59 org.springframework.beans.factory.support.defaultListableBeanFactory PreinstantiatesingLetons Informações: Pré-instantando singletons em org.springframework.beans.factory.support.DefaultListableBeanFactory@1aa5777777777777777777777777777777777777777777777777777777777777777777FRAMBOLA7FRAMBONS.Factory.Support.DefaultListableBeanFactorynha [org.springframework.beans.factory.config.propertyplaceholderConfigurer#0, DataSource, txManager, org.springframework.aop.config.internalautoProxycreator, org.springframework.Transaction.anNotati On.annotationtransactionAttributesource#0, org.springframework.transaction.intercept.TransactionIntercept#0, org.springframework.transaction.config.internaltransactionAdvisor, perseverservice]; Raiz da hierarquia da fábrica ++++++++++++ obtenha toda a pessoa 2 tomcat 12 fêmea 3 hongten 21 masculino 4 liufang 21 fêmea 5 divida 20 masculino 6 Jone 20 fêmea 7 su Dongpo 21 masculino 8 sun feminino 21 21 masculino *******************
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.