mybatis 快速入门
来源:互联网 发布:网络女主播隐藏视频 编辑:程序博客网 时间:2024/05/19 08:43
mybatis概念:
mybatis是一个持久层框架,是apche下的顶级项目-->mybatis托管到goolecode下-->再后来托管到github下
mybatis让程序将主要的经理放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动话的,大部分需要程序员编写sql)满足需要sql
mybatis可以将向preparedStatement中的输入参数自动进行输入映射,将查询结果灵活映射成java对象
mybatis开发流程
1)mybatis的jar包 包括核心包+依赖包所有-->我这里使用的3.2.7版本
2)建立mybatis的核心文件SqlMapConfig.xml(名称没有限定) 约束文件去mybatis的核心包带的pdf文档中查找xmls关键字
3)建立映射文件User.xml
快速入门案例:
1.使用mysql创建数据库表 user
create database mybatis01;use mybatis01;create table user(id int primary key auto_increment,username varchar(30),birthday date,sex char(1),address varchar(30));手工方式插入数据:
2.javaBean User对象即数据库对应的字段
package cn.itcast.domain;import java.util.Date;public class User {private int id;private String username;private Date birthday;private String sex;<span style="font-family: 'Courier New';">private String address;</span><span style="white-space:pre"></span>//省略getter setter方法}
2.建立User.xml关系映射文件
parameterType:输入映射对应的参数类型
resultType:输出映射对象的参数类型
下面的文件中主要定义了
一个根据主键查询用户返回单个对象的映射
模糊查询用户字段返回对象集合的映射
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="test"><!-- 在映射文件中配置很多sql语句 --><!-- 需求:通过id查询用户表的记录 --><!-- 通过select执行数据库查询 --><!-- id:标识 映射文件中的sql将sql语句封装到mappedStatement对象中,因此将id称为statement的idparameterType:指定输入参数的类型,这里指定int类型#{} 标识一个占位符#{id}其中的id标识接受输入的参数,参数名称就是id,如果输入类型参数是简单类型#{id}的id可以是value或者其他任意值resultType:指定sql输出结果的所映射的java对象类型,select 指定resultType将表中的单条记录封装成一个java对象 --><select id="findById" parameterType="int" resultType="cn.itcast.domain.User">select * from user where id=#{id}</select><!--根据用户名模糊查询 可以返回多条记录 --><!-- resultType:指定就是单条记录所映射的java对象类型 --><!-- ${}:表示拼接sql串,将接受到参数的内容不加任何修饰拼接在sql中使用${}拼接sql,引起sql注入${value}:接受输入参数的内容,如果传入类型是简单类型,${}中只能使用value --><select id="findUserByName" parameterType="java.lang.String" resultType="cn.itcast.domain.User">select * from user where username like "%${value}%"</select></mapper>3.mybatis的核心文件SqlMapConfig.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/mybatis01" /><property name="username" value="root" /><property name="password" value="169500" /></dataSource></environment></environments><!--加载映射文件--> <mapper resource="mapper/User.xml" /> </mappers></configuration>4.测试类UserTest
解析配置文件的步骤:
1)创建会话工厂类SqlSessionFactory,传入会话信息
2)通过会话工厂类创建会话得到SqlSession对象
3)通过SqlSession进行操作--->如果仅仅是查询 可以不提交事务,如果是增删改 必须提交事务
package cn.itcast.test;import java.io.IOException;import java.io.InputStream;import java.util.List;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.Test;import cn.itcast.domain.User;public class UserTest {@Testpublic void testFindById() throws IOException{//mybatis的配置文件String resource="SqlMapConfig.xml";//得到配置文件流InputStream in=Resources.getResourceAsStream(resource);//1.创建回话工厂,传入的配置文件信息SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(in);//2.通过工厂得到sqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();//3.通过sqlSession操作数据库User user = sqlSession.selectOne("test.findById",1);System.out.println(user.getUsername());}@Testpublic void testFindUserByName() throws IOException{//mybatis的配置文件String resource="SqlMapConfig.xml";//得到配置文件流InputStream in=Resources.getResourceAsStream(resource);//1.创建回话工厂,传入的配置文件信息SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(in);//2.通过工厂得到sqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();//3.通过sqlSession操作数据库List<User> users = sqlSession.selectList("test.findUserByName", "王");System.out.println(users);}}测试数据 可以看到控制台打印的信息....
0 0
- MyBatis-----1、MyBatis快速入门
- 深入浅出MyBatis-快速入门
- 深入浅出MyBatis-快速入门
- 深入浅出MyBatis-快速入门
- MyBatis快速入门经典
- mybatis快速入门
- 深入浅出MyBatis-快速入门
- 深入浅出MyBatis-快速入门
- Mybatis快速入门指南
- 深入浅出MyBatis-快速入门
- 深入浅出MyBatis-快速入门
- MyBatis-快速入门
- MyBatis快速入门
- MyBatis --快速入门
- MyBatis --快速入门
- mybatis 快速入门
- mybatis快速入门
- mybatis快速入门
- java.lang.ClassNotFoundException: Didn't find class "*****Activity" on path: /data/app/*******.apk
- centos文件新建、删除、移动、复制等命令
- RecyclerView 动画 (添加、删除动画 以及 加载item 时的动画)
- 电子系统面临了哪些威胁?
- Apache Thrift - 可伸缩的跨语言服务开发框架
- mybatis 快速入门
- MFC Unicode字符集下 CString类型转换为char*类型
- ANDROID自定义视图——onMeasure,MeasureSpec源码 流程 思路详解
- hdu 3466 Proud Merchants (排序的dp)
- Spark Streaming+Flume对接实验
- Spring @Transactional
- linux下的22个特殊符号
- python 3.x 语法小记
- 大数的运算函数(Java)