mybatis详解(一)
来源:互联网 发布:淘宝店描述怎么写范例 编辑:程序博客网 时间:2024/05/17 06:22
一、mybatis介绍:
mybatis是用来封装jdbc的一个持久层框架,它和Hibernate都属于ORM框架。但Hibernate属于完全的ORM框架,mybatis属于不完全的ORM框架。
mybatis让程序员只关注sql本身,而不去关心连接的创建,statement的创建等等其他操作。
二、HelloWorld
1.导入jar包:
a.mysql-connector-java-5.1.22-bin.jar mysql驱动包
b.mybatis-3.3.0.jar mybatis核心包
c.mybatis依赖包
2.mybatis的配置文件
<?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> <!-- 加载java的配置文件,如db.properties --> <properties resource="db.properties"></properties> <!-- 省却包名 --> <typeAliases> <package name="com.milan.entity"/> </typeAliases> <!-- 配置mybatis的环境信息,与spring整合,该信息由spring来管理 --> <environments default="development"> <environment id="development"> <!-- 配置JDBC事务控制,由mybatis进行管理 --> <transactionManager type="JDBC"></transactionManager> <!-- 配置数据源,采用mybatis连接池 --> <dataSource type="POOLED"> <property name="driver" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </dataSource> </environment> </environments> <!-- 加载映射文件 --> <mappers> <mapper resource="User.xml" /> <mapper resource="mapper/UserMapper.xml" /> </mappers> </configuration>
3.对应的User类的配置文件
<?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"><!-- namespace:命名空间,对statement的信息进行分类管理 --><!-- 注意:在mapper代理时,它具有特殊及重要的作用 --><mapper namespace="com.milan.mapper.UserMapper"><!--dao使用test, mapper代理需要使用全路径com.milan.mapper.UserMapper --><!-- 根据用户ID查询用户信息 --><!-- select:表示一个MappedStatement对象 --><!-- id:statement的唯一标示 --><!-- #{}:表示一个占位符? --><!-- #{id}:里面的id表示输入参数的参数名称,如果该参数是简单类型,那么#{}里面的参数名称可以任意 --><!-- parameterType:输入参数的java类型 --><!-- resultType:输出结果的所映射的java类型(单条结果所对应的java类型) --><select id="findUserById" parameterType="int"resultType="User">SELECT * FROM t_user WHERE id =#{id}</select><!-- 根据用户名称模糊查询用户列表 --><!-- ${}:表示一个sql的连接符 --><!-- ${value}:里面的value表示输入参数的参数名称,如果该参数是简单类型,那么${}里面的参数名称必须是value --><!-- ${}这种写法存在sql注入的风险,所以要慎用!!但是在一些场景下,必须使用${},比如排序时,动态传入排序的列名,${}会原样输出,不加解释 --><select id="findUserByPassword" parameterType="String"resultType="User">SELECT * FROM t_user WHERE password LIKE '%${value}%'</select><!-- 添加语句 --><!-- selectKey:表示查询主键,标签内需要输入查询主键的sql --><!-- order:表示查询主键的sql与插入语句的sql的执行顺序1.如果使用数据库自增,则order值为before,ID设置为int类型,不需要手动传入2.如果使用数据库的UUID,则order值为after,ID需要设置为string类型,并且手动传入 --><insert id="addUser" parameterType="User"><selectKey keyProperty="id" resultType="int" order="AFTER">SELECT LAST_INSERT_ID()</selectKey>INSERT INTO t_user (username,password,idNumber,vip,score,createTime,lastLoginTime) VALUES(#{username},#{password},#{idNumber},#{vip},#{score},#{createTime},#{lastLoginTime})</insert></mapper>
4.数据库的db.properties文件
driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/testusername=rootpassword=root
5.HelloWorld
@Testpublic void getUserById() throws IOException{//读取配置文件String resource ="SqlMapConfig.xml";InputStream inputStream = Resources.getResourceAsStream(resource);//创建SqlSessionFactorySqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);//创建SqlSessionSqlSession sqlSession = factory.openSession();//调用SqlSession的增删改查方法//第一个参数表示statement的唯一标识//第二个参数表示参数User user = sqlSession.selectOne("test.findUserById",1);System.out.println(user.toString());System.out.println("===========================================");List<User> list = sqlSession.selectList("test.findUserByPassword","111");System.out.println(list);sqlSession.insert("test.addUser", user);sqlSession.commit();sqlSession.close();}
0 0
- mybatis详解(一)
- Spring3+mybatis+mysql整合详解(一)
- Mybatis中高级映射详解(一)
- Mybatis详解一
- mybatis一、二级缓存详解
- MyBatis动态sql详解(一)
- Mybatis XML 文件的学习详解(一)
- SpringMVC+Spring+Mybatis快速入门(一)配置详解
- mybatis缓存机制详解(一)——Cache
- [MyBatis]MyBatis入门(一)
- MyBatis:多对一表关系详解
- Mybatis详解之宏观篇一
- mybatis一二级缓存详解,整合ehcache缓存,
- Mybatis源码分析(一)- Configuration配置文件详解
- 《深入理解mybatis原理(一)》 Mybatis初始化机制详解
- 深入理解mybatis原理(一) Mybatis初始化机制详解
- mybatis学习(一)
- mybatis(一)
- Linux 字符设备驱动结构(三)—— file、inode结构体及chardevs数组等相关知识解析
- LeetCode_003 Longest Substring Without Repeating Characters(greedy)
- Gitlab - 如何解決 "No authentication methods configured on login page" ? (gitlab version : 8.11.2)
- springMVC的配置
- caffe环境配置
- mybatis详解(一)
- preg_match、preg_match_all使用注意点
- iOS开发之 WKWebVeiw使用
- Python Debug
- 欧拉计划 8
- 使用Eclipse的maven构建一个web项目
- hdu题目分类
- [Leetcode] Isomorphic Strings
- UX入門 - 2