- 浏览: 50221 次
文章分类
最新评论
ORM这个词对于很多做J2EE开发的人来讲,并不陌生,如Hibernate,但是在使用Hibernate时,你会有一个很大的感受是什么呢?那就是关联映射这个东东不太好弄,还有级联的设置,导致在公司中,其实很用Hibernate并不是太多,所以才有Mybatis这个半ORM框架,何为半ORM框架,就是它一半是使用sql来写的,但是最终的结果是对象,这个神奇吧。而且不像网上一大堆例子,Mybatis中写了一些resutlMap之类的东东,其实,只要你sql写对了,直接可以用在Mybatis上面,根本不用写其它的内容。下面以一个例子来讲解关联的例子,我有学生表(student)和课程表(course)。
1.实体类
Student.java:对应于数据库表的实体类
Course.java:对应数据库表的实体类
SC.java:对应于一个关联查询结果类,在后面的查询语句中体现出来
2.conf.xml
3.studentMapper.xml
4.测试
1.实体类
Student.java:对应于数据库表的实体类
public class Student { private int id; private String student_name; private int course_id; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getStudent_name() { return student_name; } public void setStudent_name(String student_name) { this.student_name = student_name; } public int getCourse_id() { return course_id; } public void setCourse_id(int course_id) { this.course_id = course_id; } @Override public String toString() { // TODO Auto-generated method stub return this.id+","+this.student_name+","+this.course_id; } }
Course.java:对应数据库表的实体类
public class Course { private int id; private String course_name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getCourse_name() { return course_name; } public void setCourse_name(String course_name) { this.course_name = course_name; } @Override public String toString() { // TODO Auto-generated method stub return this.id+","+this.course_name; } }
SC.java:对应于一个关联查询结果类,在后面的查询语句中体现出来
public class SC { private int id; private String student_name; private String course_name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getStudent_name() { return student_name; } public void setStudent_name(String student_name) { this.student_name = student_name; } public String getCourse_name() { return course_name; } public void setCourse_name(String course_name) { this.course_name = course_name; } @Override public String toString() { // TODO Auto-generated method stub return this.student_name+","+this.course_name; } }
2.conf.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <!-- 配置数据库连接信息 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/gaofulai" /> <property name="username" value="root" /> <property name="password" value="root" /> </dataSource> </environment> </environments> <mappers> <!-- 注册userMapper.xml文件, userMapper.xml位于me.gacl.mapping这个包下,所以resource写成me/gacl/mapping/userMapper.xml--> <mapper resource="com/mapper/studentMapper.xml"/> <mapper resource="com/mapper/courseMapper.xml"/> </mappers> </configuration>
3.studentMapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mapper.studentMapper"> <select id="getStudent" parameterType="int" resultType="com.domain.Student"> select * from student where id=#{id} </select> <select id="getStudentAndCourse" parameterType="int" resultType="com.domain.SC"> select s.id, s.student_name, c.course_name from student s, course c where s.course_id=c.id and s.id=#{id} </select> </mapper>
4.测试
public class Test { public static void main(String args[]){ String resource = "conf.xml"; InputStream is = Test.class.getClassLoader().getResourceAsStream(resource); //构建sqlSession的工厂 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is); SqlSession session = sessionFactory.openSession(); String statement = "com.mapper.studentMapper.getStudentAndCourse";//映射sql的标识字符串 //执行查询返回一个唯一学生-课程对象的sql SC sc = session.selectOne(statement, 1000); System.out.println(sc); } }
发表评论
-
Java IO 读文件的各种方法总结
2016-01-01 15:00 671IO分为字节流和字符流,字符就是简单的字符串存储,从理伦上讲, ... -
动态代理的应用
2015-12-22 17:30 698代理模式作为开发人员 ... -
Java Restful
2015-12-19 14:01 402对于两个系统之间交互信息,有两种常见的方式:webservic ... -
request.getInputStream() 只能读一次的解决方法
2015-12-17 12:17 2303我们知道request.getInputStream()只能读 ... -
java Hessian 版本冲突问题解决方法
2015-12-11 19:44 822今天在实际的项目发现了一个问题就是hessian的版本不兼容的 ... -
ThreadPoolExecutor参数讲解
2015-12-10 08:14 7831. 线程池可以节省创建多个线程带来的开销问题。 2. 线程 ... -
Java RSA 加密 解密 签名 验签
2015-12-09 10:01 58861. 加密的作用 1)明文变密文(你不知道密钥是很难解密的) ... -
Java Xstream xml 与bean之间的转换
2015-12-09 08:31 702xml文件如下: <mvc> & ... -
XPATH 解析XML
2015-12-09 08:28 4011. 表达式描述 nodename 选取此节点的所有子节 ... -
Java Dom4j 解析XML
2015-12-09 08:23 331Dom4j和JDom是很相似的,用起来十分方便。 XML文件 ... -
Java JDom 解析xml
2015-12-09 08:22 368JDOM在解析XML在代码量之上比之前的方法(DOM和SAX要 ... -
Java SAX 解析xml
2015-12-08 18:13 371在上一篇中http://gaofulai1988.iteye. ... -
Java XML解析系列
2015-12-08 18:00 692Java解析XML有多种方式,因此需要分为几个不同的系列来讲。 ... -
Java 背包算法计算从数组中找若干个数使其最接近某个数
2015-12-08 17:38 1943背包的算法的动态方式如下: f(i,w) = max{ f(i ... -
C3P0 连接分析
2015-12-01 19:05 859最近在看C3P0的原理,还是将C3P0的源码导入到Ecplis ... -
微信开发的原理
2015-11-30 10:10 1282微信在现在的生活中,扮演着举足轻重的角色,现在怎么东西都在微信 ... -
JAVA Timestamp 与Data的转化以及BigDecimal 保留两位小数
2015-11-27 14:47 16091. BigDecimal 保留两位小数 今天在项目中遇到这 ... -
java try catch finally return 继续
2015-11-27 13:45 371之前在博客中有一篇文章讨论过异常中return值的情况,有兴趣 ... -
Java JDBC executeBatch 批量操作
2015-11-27 08:05 1556对JDBC 的 CRUD操作,我相信对于每个开发人员来讲,是十 ... -
Java WeakHashMap 分析
2015-11-26 08:17 586昨天在我们的系统中看 ...
相关推荐
狂神说java MyBatis 笔记
1. Java Mybatis Generator, 自动根据数据库字段的注释,把注释的内容放到Entity的Swagger注释@ApiModel 和 @ApiModelProperty中 2. 如果碰到Mybatis xml文件格式错误,请到...
java mybatis的jar包 欢迎使用
java中实现mybatis访问数据库
JAVA MyBatis框架 特点 发展 动态SQL
mybatis Java mybatis - 实践学习案例.zip
Java MyBatis 关系映射 一对一关系
java MyBatis Plus b站黑马自学笔记
java mybatis 自动根据数据库生成mapper dao entity 文件
java MyBatis基础教程,一二级缓存.zip
用mybatis-plus的自动生成器,我们一般只用到entity和mapperXML,其他mapper接口和service类都要自己写。 可以下载之后,根据自己表生成mapperXML,然后用全局替换来修改一些细节。
java开发中使用mybatis框架需要用到的独立jar包,java开发中使用mybatis框架需要用到的独立jar包,java开发中使用mybatis框架需要用到的独立jar包,java开发中使用mybatis框架需要用到的独立jar包,
mybatis
最近在做一个数据抽取工作,因为涉及一些表的数据修改,因此写了个小工具。 主要用到技术: Mybatis , java多线程
主要介绍了详解Java MyBatis 插入数据库返回主键,有兴趣的可以了解一下。
mybatis MyBatis 实践学习案例.zip
java开发之mybatis实战教程.zip
适用于Java后台开发Mybatis使用者,包括输入输出映射配置、数据库语句配置以及Spring整合思路
java代码生成器mybatis
java代码-使用java解决mybatis模糊匹配写法的源代码 ——学习参考资料:仅用于个人学习使用!