mybatis学习笔记(精编版)_第1页
mybatis学习笔记(精编版)_第2页
mybatis学习笔记(精编版)_第3页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实用文档第十六章回顾 sql99中的连接查询1) 内连接2) 外连接3) 自连接第十七章回顾 hibernate多表开发1) 一对一2) 一对多3) 多对多第十八章mybatis一对一映射【学生与身份证】1)参见 << 一对一图示 .jpg>> 2)创建 students.sql 和 cards.sqldroptablestudents; droptablecards; createtablecards(idint (5)primarykey , numvarchar (20);createtablestudents(idint (5)primarykey , name

2、varchar (10),cid int (5),constraintcid_fkforeignkey (cid)referencescards(id);insertintocards(id,num ) values (1, '111' );.insertintostudents(id,name ,cid) values (1, ' 哈哈',1);3) 创建 students.java 和 card.java publicclasscard privateintegerid ; privatestringnum ;privatestudentstudent; p

3、ubliccard()publicinteger getid() returnid ;publicvoidsetid(integer id) this. id= id;publicstring getnum() returnnum ;publicvoidsetnum(string num) this. num = num;publicstudent getstudent() returnstudent;publicvoidsetstudent(student student) this. student= student;publicclassstudent privateintegerid

4、; privatestringname ; privatecardcard; publicstudent()publicinteger getid() returnid ;publicvoidsetid(integer id) this. id= id;publicstring getname() returnname ;publicvoidsetname(string name) this. name = name;publiccard getcard() returncard;publicvoidsetcard(card card) this. card= card;4) 创 建 stud

5、entmapper.xml 和 cardmapper.xmlcardmapper.xml<? xmlversion="1.0"encoding="utf-8"?><! doctype mapperpublic"-//dtd mapper 3.0/en" "/dtd/mybatis-3-mapper.dtd"><mappernamespace="cardnamespace"><resultmaptyp

6、e= "cn.itcast.javaee.mybatis.one2one.card" id ="cardmap"><idproperty= "id"column="id"/><resultproperty= "num"column= "num"/></ resultmap></ mapper> studentmapper.xml<? xmlversion="1.0"encoding="u

7、tf-8"?><! doctype mapperpublic"-//dtd mapper 3.0/en" "/dtd/mybatis-3-mapper.dtd"><mappernamespace="studentnamespace"><resultmaptype= "cn.itcast.javaee.mybatis.one2one.student" id ="studentmap"><

8、;idproperty= "id"column="id"/><resultproperty= "name"column="name"/><associationproperty="card" resultmap="cardnamespace.cardmap"/></ resultmap><selectid ="findbyid"parametertype= "int" resultmap=

9、"studentmap">select s.id,,c.id,c.num from students s inner join cards c on s.cid = c.idand s.id = #id</ select></ mapper>5) 创 建 studentcarddao.javapublicclassstudentcarddao /*查询 1 号【学生】*/publicstudent findbyid(intid)throwsexception sqlsession sqlsession =null;trysqlses

10、sion = mybatisutil.getsqlsession(); returnsqlsession.selectone("studentnamespace.findbyid",id); catch(exception e) e.printstacktrace(); throwe; finallymybatisutil.closesqlsession();publicstaticvoidmain(string args)throwsexception studentcarddao dao =new studentcarddao();student student = d

11、ao.findbyid(1);system.out .println(student.getid()+":"+student.getname();system.out .println(student.getcard().getid()+":"+student.ge tcard().getnum();第十九章mybatis一对多映射【班级与学生】1)参见 << 一对多图示 .jpg>> 2)创建 grades.sql 和 students.sqldroptable students; droptable grades; creat

12、etable grades(gidint (5)primarykey , gnamevarchar (10);createtable students(sidint (5)primarykey , snamevarchar (10),sgidint (5),constraintsgid_fkforeignkey (sgid)referencesgrades(gid);insertintogrades(gid,gname)values (1,'java' );insertintostudents(sid,sname,sgid)values (1,' 哈哈',1);

13、insertintostudents(sid,sname,sgid)values (2,' 呵呵',1);3) 创建 grade.java 和 student.sql/* 班级(单方)* authoradmintc*/publicclassgrade privateintegerid ;privatestringname ;privatelist<student>studentlist= new arraylist<student>(); publicgrade()publicinteger getid() returnid ;publicvoidset

14、id(integer id) this. id= id;publicstring getname() returnname ;publicvoidsetname(string name) this. name = name;publiclist<student> getstudentlist() returnstudentlist;publicvoidsetstudentlist(list<student> studentlist) this. studentlist= studentlist;/* 学生(多方)* authoradmintc*/publicclasss

15、tudent privateintegerid ; privatestringname ; privategradegrade; publicstudent()publicinteger getid() returnid ;publicvoidsetid(integer id) this. id= id;publicstring getname() returnname ;publicvoidsetname(string name) this. name = name;publicgrade getgrade() returngrade;publicvoidsetgrade(grade gra

16、de) this. grade= grade;4) 创 建 grademapper.xml 和 studentmapper.xml grademapper.xml<? xmlversion="1.0"encoding="utf-8"?><! doctype mapperpublic"-//dtd mapper 3.0/en" "/dtd/mybatis-3-mapper.dtd"><mappernamespace="gr

17、adenamespace"><resultmaptype= "cn.itcast.javaee.mybatis.one2many.grade" id ="grademap"><idproperty= "id"column="gid"/><resultproperty= "name"column="gname"/><collectionproperty= "studentlist" resultmap

18、="studentnamespace.studentmap"/></ resultmap><selectid ="findgradebyname"parametertype="string" resultmap="grademap">select g.gid,g.gname,s.sid,s.sname from grades g,students swhere g.gid = s.sgid and s.sname = #name</ select></ mapper&

19、gt; studentmapper.xml<? xmlversion="1.0"encoding="utf-8"?><! doctype mapperpublic"-//dtd mapper 3.0/en" "/dtd/mybatis-3-mapper.dtd"><mappernamespace="studentnamespace"><resultmaptype= "cn.itcast.j

20、avaee.mybatis.one2many.student" id ="studentmap"><idproperty= "id"column="sid"/><resultproperty= "name"column="sname"/><associationproperty="grade"resultmap="gradenamespace.grademap"/></ resultmap>&

21、lt;selectid ="findallbyname"parametertype="string" resultmap="studentmap">select s.sid,s.sname,g.gid,g.gname from grades g,students swhere g.gid = s.sgid and g.gname = #name</ select></ mapper>5) 创 建 gradestudentdao.javapublicclassgradestudentdao /* 查询 ja

22、va班级有哪些【学生】*/publiclist<student> findallbyname(string name)throws exceptionsqlsession sqlsession =null; trysqlsession = mybatisutil.getsqlsession(); returnsqlsession.selectlist("studentnamespace.findallbyname",name); catch(exception e) e.printstacktrace(); throwe; finallymybatisutil.

23、closesqlsession();/* 查询哈哈属于哪个【班级】*/publicgrade findgradebyname(string name)throwsexception sqlsession sqlsession =null;trysqlsession = mybatisutil.getsqlsession(); returnsqlsession.selectone("gradenamespace.findgradebyname",name); catch(exception e) e.printstacktrace(); throwe; finallymyba

24、tisutil.closesqlsession();publicstaticvoidmain(string args)throwsexception gradestudentdao dao =new gradestudentdao();list<student> studentlist = dao.findallbyname("java");for(student s : studentlist)system.out .println(s.getid()+":"+s.getname()+":"+s.getgrade().g

25、etid()+":"+s.getgrade().getname();grade grade = dao.findgradebyname(" 哈哈" );system.out.println(grade.getid()+":"+grade.getname();第二十章mybatis多对多映射【学生与课程】1) 参见 << 多对多图示 .jpg>>2) 创建 students.sql 和 courses.sql 和 middles.sqldroptable middles; droptable students;

26、droptable courses; createtable students(sid int (5) primarykey , snamevarchar (10);createtable courses(cid int (5) primarykey , cnamevarchar (10);createtable middles( sid int (5),cid int (5),primarykey (sid,cid);insertintostudents(sid,sname)values (1, '哈哈' ); insertintostudents(sid,sname)val

27、ues (2, '呵呵' ); insertintocourses(cid,cname)values (1, 'java' ); insertintocourses(cid,cname)values (2, 'net' ); insertintomiddles(sid,cid)values (1,1);insert into middles(sid,cid) values (1,2); insert into middles(sid,cid) values (2,1); insert into middles(sid,cid) values (2

28、,2); select * from students;select * from courses;select * frommiddles;3) 创建 student.java 和 course.java/* 学生 ( 多方 )* authoradmintc*/publicclassstudent privateintegerid ; privatestringname ;privatelist<course>courselist=new arraylist<course>(); publicstudent()publicinteger getid() returni

29、d ;publicvoidsetid(integer id) this. id= id;publicstring getname() returnname ;publicvoidsetname(string name) this. name = name;publiclist<course> getcourselist() returncourselist;publicvoidsetcourselist(list<course> courselist) this. courselist= courselist;/* 课程 ( 多方 )* authoradmintc*/p

30、ublicclasscourse privateintegerid ; privatestringname ;privatelist<student>studentlist= new arraylist<student>(); publiccourse()publicinteger getid() returnid ;publicvoidsetid(integer id) this. id= id;publicstring getname() returnname ;publicvoidsetname(string name) this. name = name;pub

31、liclist<student> getstudentlist() returnstudentlist;publicvoidsetstudentlist(list<student> studentlist) this. studentlist= studentlist;4) 创 建 studentmapper.xml 和 coursemapper.xml studentmapper.xml<? xmlversion="1.0"encoding="utf-8"?><! doctype mapperpublic&qu

32、ot;-//dtd mapper 3.0/en" "/dtd/mybatis-3-mapper.dtd"><mappernamespace="studentnamespace"><resultmaptype="cn.itcast.javaee.mybatis.many2many.student" id ="studentmap"><idproperty= "id"column="sid

33、"/><resultproperty= "name"column="sname"/></ resultmap><selectid ="findstudentbyname"parametertype="string" resultmap="studentmap">select s.sid,s.snamefrom students s,middles m,courses c where s.sid = m.sidand m.cid = c.cida

34、nd ame = #name</ select></ mapper> coursemapper.xml<? xmlversion="1.0"encoding="utf-8"?><! doctype mapperpublic"-//dtd mapper 3.0/en" "/dtd/mybatis-3-mapper.dtd"><mappernamespace="coursenamespace"

35、;><resultmaptype= "cn.itcast.javaee.mybatis.many2many.course" id ="coursemap"><idproperty= "id"column="cid"/><resultproperty= "name"column="cname"/></ resultmap><selectid ="findcoursebyname"parametert

36、ype= "string" resultmap="coursemap">select c.cid,amefrom students s,middles m,courses c where s.sid = m.sidand m.cid = c.cidand s.sname = #name</ select></ mapper>5) 创建 students.sql 和 courses.sql 和 middles.sql publicclassstudentcoursedao /* 查询哈哈选学的【课程】*/publiclist&

37、lt;course> findcoursebyname(string name)throws exceptionsqlsession sqlsession =null; trysqlsession = mybatisutil.getsqlsession(); returnsqlsession.selectlist("coursenamespace.findcoursebyname",name); catch(exception e) e.printstacktrace(); throwe; finallymybatisutil.closesqlsession();/*

38、 查询 java课程有哪些【学生】*/publiclist<student> findstudentbyname(string name)throws exceptionsqlsession sqlsession =null;trysqlsession = mybatisutil.getsqlsession();returnsqlsession.selectlist("studentnamespace.findstudentbyname",nam e); catch(exception e)e.printstacktrace(); throwe; finally

39、mybatisutil.closesqlsession();publicstaticvoidmain(string args)throwsexception studentcoursedao dao =new studentcoursedao();/list<course> courselist = dao.findcoursebyname("哈哈 ");/for(course c : courselist)/system.out.println(c.getid()+":"+c.getname();/list<student> s

40、tudentlist = dao.findstudentbyname("java");for(student s : studentlist)system.out .println(s.getid()+":"+s.getname();第二十一章spring + mybatis + mysql/oracle开发1) 创建一个spring-mybatis-mysql这么一个javaweb 或 java 工程2) 导入 spring-ioc ,spring-aop,spring-transaction ,mybatis ,c3p0,mysql/oracle 相

41、关的 jar 包和 spring 整合 mybatis的 jar 包3) 创 建 students.sql-mysqlcreatetable students(sidint (5) primarykey , sname varchar (10),ssal double (8,2);4) 创 建 student.java/* 学生* authoradmintc*/publicclassstudent privateintegerid ; /编号privatestringname ; /姓名privatedoublesal; /薪水publicstudent()publicstudent(inte

42、ger id, string name, double sal) this. id= id;this. name = name; this. sal= sal;publicinteger getid() returnid ;publicvoidsetid(integer id) this. id= id;publicstring getname() returnname ;publicvoidsetname(string name) this. name = name;publicdouble getsal() returnsal;publicvoidsetsal(double sal) th

43、is. sal= sal;5) 创 建 studentmapper.xml<? xmlversion="1.0"encoding="utf-8"?><! doctype mapperpublic"-//dtd mapper 3.0/en" "/dtd/mybatis-3-mapper.dtd"><mappernamespace="studentnamespace"><resultmaptype= &

44、quot;cn.itcast.javaee.mybatis.entity.student" id ="studentmap"><idproperty= "id"column="sid"/><resultproperty= "name"column="sname"/><resultproperty= "sal"column= "ssal"/></ resultmap><insertid =

45、"insert"parametertype="cn.itcast.javaee.mybatis.entity.student"> insert into students(sid,sname,ssal)values(#id,#name,#sal)</ insert></ mapper>6) 创 建 studentdao.javapublicclassstudentdao privatesqlsessionfactorysqlsessionfactory; publicvoidsetsqlsessionfactory(sqls

46、essionfactorysqlsessionfactory) this. sqlsessionfactory= sqlsessionfactory;publicvoidinsert(student student)sqlsession sqlsession =sqlsession.insert(sqlsessionfactory"studentnamespace.insert".opensession();,student);/int i = 10/0;publicstaticvoidmain(string args) applicationcontext ac =new

47、classpathxmlapplicationcontext(new string"spring.xml"); studentdao studentdao = (studentdao)ac.getbean("studentdaoid");studentdao.insert(new student(1," 哈哈 " ,7000d);7) 在 src 目录下创建mybatis.xml<? xmlversion="1.0"encoding="utf-8"?><! doctype co

48、nfigurationpublic"-//dtd config 3.0/en""/dtd/mybatis-3-config.dtd"><configuration><mappers><mapperresource="cn/itcast/javaee/mybatis/entity/studentmapper.xml"/></ mappers></ configuration>8) 在 src 目录下创建spring.

49、xml<? xmlversion="1.0"encoding="utf-8"?><beansxmlns="/schema/beans" xmlns:xsi= "/2001/xmlschema-instance"xmlns:context="/schema/context" xmlns:aop= "http:/www.spr

50、/schema/aop" xmlns:tx="/schema/tx" xmlns:mvc= "/schema/mvc"xsi:schemalocation=" /schema/beans/schema/beans/spring-beans-3.0.x sdhttp:/www.

51、/schema/context/schema/context/spring-context-3.0.xsd/schema/aop /schema/aop/spring-aop-3.0.xsd/schema/tx/schema/tx/spring-tx-3.0.xsd ht

52、tp://schema/mvc/schema/mvc/spring-mvc-3.0.xsd"><!-配置 c3p0 连接池 ( 即管理数据库连接) ->< beanid ="combopooleddatasourceid"class= "com.mchange.v2.c3p0.combopooleddatasource">< propertyname ="driverclass" val

53、ue= "com.mysql.jdbc.driver"/>< propertyname ="jdbcurl"value= "jdbc:mysql:/:3306/mybatis"/>< propertyname ="user"value="root"/>< propertyname ="password"value="root"/></ bean >-><!-配置sqlses

54、sionfactorybean(即替代 mybatisutil工具类的作用 )< beanid ="sqlsessionfactorybeanid"class= "org.mybatis.spring.sqlsessionfactorybean">< propertyname ="datasource" ref= "combopooleddatasourceid"/>< propertyname ="configlocation"value= "class

55、path:mybatis.xml"/></ bean ><!-配置事务管理器( 即使用 jdbc事务管理器 ) ->< beanid ="datasourcetransactionmanagerid"class= "org.springframework.jdbc.datasource.datasourcetransacti onmanager">< propertyname ="datasource"ref= "combopooleddatasourceid&quo

56、t;</ bean >/><!-配置事务通知 ( 即哪些方法需要事务) ->< tx:adviceid = "tx"transaction-manager="datasourcetransactionmanagerid">< tx:attributes<tx:method</ tx:attributes>name ="*">propagation= "required"/></ tx:advice><!-配置事务切面 (

57、 即哪些包中的类需要事务通知) ->< aop:config>< aop:pointcutid ="pointcut" cn.itcast.javaee.mybatis.dao.*.*(.)"expression/>pointcut-ref="execution(*< aop:advisoradvice-ref="tx"="pointcut"/></ aop:config><!-< bean配置studentdao类 ->id ="s

58、tudentdaoid"class= "cn.itcast.javaee.mybatis.dao.studentdao">< propertyname ="sqlsessionfactory"ref= "sqlsessionfactorybeanid"</ bean >/></ beans >第二十二章jsp/js/jquery/easyui/json+springmvc+spring+mybatis+ mysql/oracle开发1) 员工管理系统 -增加员工第二十三章jdbc访问 oracle存储过程和存储函数1)写一个计算个人所得税的应用-定义过程create or replace procedure get_rax(salary in number,rax out number) as-需要交税的钱bal number; beginbal := salary - 3500;if bal<=1500 thenrax := bal * 0.03 - 0; elsif bal<=4500 th

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论