تقدم هذه المقالة عملية تطوير spring_jdbc من قاعدة بيانات MySQL ، على النحو التالي:
هيكل المشروع:
جدول قاعدة البيانات:
/spring_1100_spring+jdbc/src/com/b510/bean/person.java
Package com.b510.bean ؛/** * جافابيان فئة عادي * * Author Hongten * */Public Class Person {/** * رقم المعرف */private int id ؛ / ** * الاسم */ اسم السلسلة الخاصة ؛ / ** * AGE */ Private Int Age ؛ / ** * الجنس */ سلسلة جنسية خاصة ؛ الشخص العام (int id ، اسم السلسلة ، int ، string sex) {this.id = id ؛ this.name = name ؛ this.age = العمر ؛ this.Sex = الجنس ؛ } public person () {} public int getId () {return id ؛ } public void setId (int id) {this.id = id ؛ } السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } public int getage () {return Age ؛ } public void setage (int age) {this.age = age ؛ } سلسلة عامة getSex () {return sex ؛ } public void setSex (سلسلة الجنس) {this.sex = sex ؛ }} /spring_1100_spring+jdbc/src/com/b510/service/personservice.java
package com.b510.Service ؛ import java.util.list ؛ import com.b510.bean.person ؛ public interface personservice { / ** * Save Person * * param person * / public actirt void save (person person) ؛ / ** * تحديث الشخص * * Param Person */ Public Abstract Void Update (Person) ؛ / ** * احصل على شخص * * param id * @return */ Public Abstract Person GetPerson (INTEGER ID) ؛ / ** * احصل على كل شخص * * @return */ قائمة الملخص العامة <Person> getPerson () ؛ / ** * حذف الشخص بالمعرف المحدد * * param id */ public Abstract void delete (integer id) ؛} /spring_1100_spring+jdbc/src/com/b510/service/impl/personservicebean.java
package com.b510.service.impl ؛ استيراد java.util.list ؛ استيراد javax.sql.datasource ؛ استيراد org.springframework.jdbc.core.jdbctemplate ؛ import com.b510.bean.person ؛ ProfonserviceBean ينفذ Profonsservice { / ** * مصدر البيانات * / خاص بيانات بيانات البيانات الخاصة ؛ / *** jdbc عملية المساعدة المقدمة من الربيع*/ private jdbctemplate jdbctemplate ؛ // قم بتعيين مصدر البيانات public void setDataSource (DataSource DataSource) {this.jdbctemplate = new jdbctemplate (dataSource) ؛ } void public save (شخص شخص) {jdbctemplate.update ("أدخل في الشخص (الاسم ، العمر ، الجنس) القيم (؟ ،؟ ،؟)" ، كائن جديد [] {person.getName () ، person.getage () ، person.getsex ()} ، new int [] java.sql.types.varchar}) ؛ } تحديث الفراغ العام (الشخص الشخص) {jdbctemplate.update ("تحديث اسم الشخص المحدد =؟ ، العمر =؟ java.sql.types.integer ، java.sql.types.varchar ، java.sql.types.integer}) ؛ } public person getPerson (integer id) {person person = (person) jdbctemplate.queryforoBject ("SELECT * from person where id =؟" ، comple new [] {id} ، new int [] {java.sql.tepes.integer} ، new personmapper ()) ؛ عودة الشخص } suppressWarnings ("Unchected") قائمة عامة <Person> getPerson () {list <Person> list = jdbctemplate.query ("Select * from person" ، new PersonRowMapper ()) ؛ قائمة العودة } public void delete (integer id) {jdbctemplate.update ("delete from person where id =؟" ، new Object [] {id} ، new int [] {java.sql.types.integer}) ؛ }} /spring_1100_spring+jdbc/src/com/b510/service/impl/personrowmapper.java
package com.b510.service.impl ؛ استيراد java.sql.resultset ؛ استيراد java.sql.sqlexception ؛ {person person = new شخص (set.getInt ("id") ، set.getString ("name") ، set .getint ("Age") ، set.getString ("sex")) ؛ عودة الشخص }} /spring_1100_spring+jdbc/src/com/b510/test/springjdbctest.java
حزمة com.b510.test ؛ استيراد java.util.list ؛ استيراد org.springframework.context.applicationContext static void main (string [] args) {applicationContext Act = new ClassPathxMlapplicationContext ("bean.xml") ؛ الخدمات الباحثين = (Personservice) ACT. شخص الشخص = شخص جديد () ؛ person.setName ("su dongpo") ؛ person.setage (21) ؛ person.setSex ("ذكر") ؛ // Save a Record Personvice.save (person) ؛ قائمة <Person> person1 = personservice.getPerson () ؛ System.out.println ("+++++++ الحصول على جميع الأشخاص") ؛ لـ (person2: person1) {system.out.println (person2.getId () + "" + person2getName () + "" + person2.getage () + "" + person2.getSex ()) ؛ } person updatePerson = new person () ؛ updatePerson.setName ("Divide") ؛ updatePerson.setage (20) ؛ updatePerson.setSex ("ذكر") ؛ updatePerson.setId (5) ؛ // تحديث سجل personvice.update (UpdatePerson) ؛ System.out.println ("********************") ؛ // احصل على شخص قياسي oneperson = personvice.getPerson (2) ؛ System.out.println (OnePerson.getId () + "" + OnePerson.getName () + "" + OnePerson.getage () + " + OnePerson.getSex ()) ؛ // حذف سجل personvice.delete (1) ؛ }} /spring_1100_spring+jdbc/src/bean.xml
<؟ xmlns: context = "http://www.springframework.org/schema/context" XSI: Schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5 http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop/spring-aop-2.5.xsd Source-> <bean id = "datasource" تدمير method = "close"> <property name = "driverClassName" value = "org.gjt.mm.mysql.driver"/> <property name = "url" value = "jdbc: mysql: // localhost: 3307/spring؟ useUnicod value = "root" /> <property name = "password" value = "root" /> <!-القيمة الأولية عند بدء تشغيل تجمع الاتصال-> <property name = "initialsize" value = "1" /> <!-القيمة القصوى لمجموعة الاتصال-> <property name = "maxactive" value = "300" /> <! بعد وقت الذروة ، يمكن لمجموعة الاتصال إطلاق بعض الاتصالات غير المستخدمة ببطء وتقليلها حتى maxidle-> <property name = "maxidle" value = "2" /> <!-قيمة الخمول الدنيا. عندما يكون عدد اتصالات الخمول أقل من العتبة ، سيتم تطبيق تجمع الاتصال مسبقًا لبعض الاتصالات لتجنب الوقت للتطبيق عندما تأتي ذروة الفيضان-> <property name = "minidle" value = "1" /> < /bean> <!-استخدم الشرح لتكوين المعاملات. بالنسبة لمدير المعاملات لمصدر البيانات ، حقن مصدر البيانات الذي حددناه في مصاعد الخصائص الخاصة بفئة DataSourCetRansActionManager-> <bean id = "txmanager"> <property name = "dataSource ref =" datasource " /> </bean> <!-قدم المساحة الاسم: 1.xmlns: tx = "http://www.springframework.org/schema/tx 2.http: //www.springframework.org/schema/tx http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd استخدم التعليق التوضيحي @transaction لاستخدام مدير المعاملات-> <tx: in in identservice-id = Property DataSource-> <property name = "datasource" ref = "datasource"> </propert
نتائج التشغيل ؛
2012-3-9 23:30:57 org.springframework.context.support.abstractapplicationContext المعلومات: org.springframework.context.support.classpathpplication@1a05308: عرض اسم العرض [org.springframework.context.support.classpathxmlapplicationcontext@1a05308] ؛ تاريخ بدء التشغيل [الجمعة مارس 09 23:30:57 CST 2012] ؛ جذر السياق الهرمي 2012-3-9 23:30:57 org.springframework.beans.factory.xml.xmlbeandefinitionReader loadbeandefinitions المعلومات: تحميل تعريفات حبة XML من موارد مسار الفصل [bean.xml] 2012-3-3 23:30:30:30 org.springframework.context.support.abstractapplicationContext الحصول على معلومات: مصنع الفول لسياق التطبيق [org.springframework.context.support.classpathxmlicationcontext@1a05308]: org.springframework.beans.factory.support.defaultlistablebeanfactory@2bb5142012-3-9 23:30:58 org.springframework.beans.factory.support.defaultbeanbeanfactory preinstantiates. org.springframework.beans.factory.support.defaultListableBeanfactory@2bb514: تعريف الفاصوليا [Datasource ، Txmanager ، org.springframework.aop.config.internalautoproxycreator ، org.springframework.transaction.annotation.annotationTransactionAttributesour CE#0 ، org.springframework.transaction.Interceptor.TransActionInterceptor#0 ، org.springframework.transaction.config.InternalTransActionAdvisor ، personservice] ؛ الجذر من التسلسل الهرمي للمصنع ++++++++++ احصل على كل شخص 2 Tomcat 12 أنثى 3 Hongten 21 Male 4 Liufang 21 Female 5 Divide 20 Male 6 Jone 20 Female 7 Su Dongpo 21 Mal
بالطبع ، يمكننا استخدام ملفات التكوين لتخزين معلومات مصدر البيانات لدينا:
/spring_1100_spring+jdbc/src/jdbc.properties
driverClassName = org.gjt.mm.mysql.driverurl = jdbc/: mysql/: // localhost/: 3307/spring؟ useUnicode/= true & nichereding/= utf-8username = rootpassword = rootinitialsize = 1maxactive = 300maxidle = 2minidle = 1
في المقابل تعديل:
/spring_1100_spring+jdbc/src/bean.xml
<؟ xmlns: context = "http://www.springframework.org/schema/context" XSI: Schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5 http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop/spring-aop-2.5.xsd ملف تكوين jdbc.properties-> <سياق: property-placeholder location = "classpath: jdbc.properties" /> <!-مصدر بيانات التكوين-> <bean id = "dataSource" destroy-method = "close"> <property name = "driverClassName" value = "$ {driverClassName}" /> name = "username" value = "$ {username}" /> <property name = "password" value = "$ {password}" /> <!-القيمة الأولية عند بدء تشغيل تجمع الاتصال-> <property name = "initialsize" value = "$ {maxize}" /> <! قيمة. بعد وقت الذروة ، يمكن لمجموع الاتصال أن يحرر ببطء جزء من الاتصالات غير المستخدمة ، ويقلل حتى maxidle-> <property name = "maxidle" value = "$ {maxidle}" /> <!-قيمة الخمول الدنيا. عندما يكون عدد اتصالات الخمول أقل من العتبة ، سيتم تطبيق تجمع الاتصال مسبقًا لبعض الاتصالات لتجنب الوقت للتطبيق عندما تأتي ذروة الفيضان-> <property name = "minidle" value = "$ {minidle}" /> < /bean> <!-استخدم التعليق التوضيحي لتكوين المعاملات. بالنسبة لمدير المعاملات لمصدر البيانات ، حقن مصدر البيانات الذي حددناه في مصاعد الخصائص الخاصة بفئة DataSourCetRansActionManager-> <bean id = "txmanager"> <property name = "datasource ref =" dataSource " /> </bean> <!-مساحة الاسم: 1.xmlns: tx = "http://www.springframework.org/schema/tx 2.http: //www.springframework.org/schema/tx http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd استخدم التعليق التوضيحي @transaction لاستخدام مدير المعاملات-> <tx: in in identservice-id = Property DataSource-> <property name = "datasource" ref = "datasource"> </propert نتائج التشغيل هي نفسها:
2012-3-10 0:23:59 org.springframework.context.support.abstractapplicationContext Informerefresh Information: org.springframework.context.support.classpathxmlicalication@c1b531 [org.springframework.context.support.classpathxmlapplicationcontext@c1b531] ؛ تاريخ بدء التشغيل [السبت Mar 10 00:23:59 CST 2012] ؛ جذر السياق الهرمي 2012-3-10 0:23:59 org.springframework.beans.factory.xml.xmlbeandefinitionReader loadbeandefinitions المعلومات: تحميل تعريفات XML من مسار الفصل [bean.xml] 2012-3-10 0:23:59 org.springframework.context.support.abstractapplicationContext getfreshbeanfactory: مصنع الفول لسياق التطبيق [org.springframework.context.support.classpathxmlicationcontext@c1b531]: org.springframework.beans.factory.support.defaultListableBeanfactory@1AA57FB2012-3-10 0:23:59 0:23:59 org.springframework.beans.factory.Support.DefaultListableBeanfactory preinstantiateseNtiatesletons معلومات: singletons pre-instantiating in org.springframework.beans.factory.support.defaultBeanBeanbeanbeanfactory [org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0 ، DataSource ، txmanager ، org.springframework.aop.config.internalautoproxycreator ، org.springframework.transaction.annotati On.AntationTransActionAttributesource#0 ، org.springframework.transaction.Interceptor.TransActionInterceptor#0 ، org.springframework.transaction.config.InternalTransActionAdvisor ، personservice] ؛ الجذر من التسلسل الهرمي للمصنع ++++++++++++ احصل على كل شخص 2 Tomcat 12 أنثى 3 Hongten 21 Male 4 Liufang 21 Female 5 Divide 20 Mal
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.