Mybatis学习笔记
来源:互联网 发布:微信发淘宝优惠券软件 编辑:程序博客网 时间:2024/06/04 19:10
可以通过http://mybatis.github.io/ 下载最新版本的mybatis,mybatis的项目托管在github的服务器上。
个人理解的MyBatis流程是,通过映射调用相应sqlmapper.xml里的SQL语句,返回相应的数据,或者执行相应的操作。sqlmapper.xml里的id要跟接口方法名保持一致。其他的后台处理交给框架来实现就可以。
通过MyEclipse新建一个java项目,建立如下的目录结构(目录结构有点随意.....因为测试,没有完全按照标准来。)
数据库使用的是Oracle,实现了对表中数据的插入以及查询。
config文件夹下存放的是User实体类
dao 文件夹下存放的是映射接口UserMapper
Mybatis文件夹下存放的是配置文件。
引入下载的jar包,以及连接数据库的jdbc jar 包,如果安装了oracle数据库,可以直接在oracle安装目录的jdbc文件夹下lib目录下找到连库的jar包。
User.java
package com.batis.config;public class User { public User() { } public String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public String username;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}}UserMapper.java
package com.batis.dao;import com.batis.config.*;;public interface UserMapper {public User findById(String Id); public void insertById(User us);}
MyBitsTest.java
package com.batis.test; import java.io.IOException; 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 com.batis.dao.UserMapper; import com.batis.config.User; /** * myBatis数据库连接测试 * * @author db2admin * */ public class MybatisTest { /** * 获得MyBatis SqlSessionFactory * SqlSessionFactory负责创建SqlSession,一旦创建成功,就可以用SqlSession实例来执行映射语句,commit,rollback,close等方法。 * @return */ private static SqlSessionFactory getSessionFactory() { SqlSessionFactory sessionFactory = null; String resource = "configuration.xml"; try { sessionFactory = new SqlSessionFactoryBuilder().build(Resources .getResourceAsReader(resource)); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return sessionFactory; } public static void main(String[] args) { SqlSession sqlSession = getSessionFactory().openSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); User user = userMapper.findById("SEX"); User us=new User(); us.setName("三"); us.setUsername("sss"); userMapper.insertById(us); sqlSession.commit(); sqlSession.close(); System.out.println(user.getName()); System.out.println(user.getUsername()); } }
userMapper.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"> <!--这块等于dao接口的实现 namespace必须和接口的类路径一样--> <mapper namespace="com.batis.dao.UserMapper"> <!-- findById必须和接口中的方法名一样 返回一个User 就是刚才的别名 如果不弄别名要连类路径一起写 麻烦--> <select id="findById" parameterType="HashMap" resultType="User"> select FIELD as username,FIELDNAME as name from EACODE where FIELD=#{id} </select> <insert id="insertById" parameterType="com.batis.config.User"> insert into TEST_USER(NAME,USERNAME) values(#{name},#{username}) </insert></mapper>
namespace必须指定实现dao的接口 id跟接口中的方法名一样。
configuration.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><typeAliases><typeAlias type="com.batis.config.User" alias="User"></typeAlias></typeAliases><environments default="development"><environment id="development"><transactionManager type="jdbc"></transactionManager><dataSource type="POOLED"><property name="driver" value="oracle.jdbc.driver.OracleDriver"></property><property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"></property><property name="username" value="g4"></property><property name="password" value="g4"></property></dataSource></environment></environments> <mappers> <!--userMapper.xml装载进来 同等于把“dao”的实现装载进来 --> <mapper resource="Mybatis/userMapper.xml" /> </mappers> </configuration>
需要注意的几点:
<typeAliases><typeAlias type="com.batis.config.User" alias="User"></typeAlias></typeAliases>typeAliases标签的作用,类似于声明了对象,以后可以在配置中或者在sqlmap中直接使用User来代替User类
environments default="development"><environment id="development"><transactionManager type="jdbc"></transactionManager><dataSource type="POOLED"><property name="driver" value="oracle.jdbc.driver.OracleDriver"></property><property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"></property><property name="username" value="g4"></property><property name="password" value="g4"></property></dataSource></environment></environments>
设置环境为development (开发模式)transactionManager 类型为jdbc dataSource 类型为 POOLED(连接池) Mybatis内置了三种数据源类型
UNPOOLED:每次请求得时候建立连接,比较慢
POOLED:建立连接池的方式
JNDI:个数据源的实现是为了使用如 Spring 或应用服务器这类的容器, 容器可以集 中或在外部配置数据源,然后放置一个 JNDI 上下文的引用。
<mappers> <!--userMapper.xml装载进来 同等于把“dao”的实现装载进来 --> <mapper resource="Mybatis/userMapper.xml" /> </mappers>
用来配置映射文件的路径。
0 0
- mybatis 学习笔记
- MyBatis学习笔记
- mybatis学习笔记---入门
- MyBatis 学习笔记
- Mybatis学习笔记
- 【MyBatis学习笔记】系列
- Mybatis学习笔记
- mybatis学习笔记
- mybatis学习笔记
- MyBatis 学习笔记
- mybatis学习笔记
- mybatis学习笔记
- MyBatis学习笔记
- mybatis学习笔记
- Mybatis框架学习笔记
- Mybatis学习笔记
- MyBatis学习笔记
- MyBatis 学习笔记
- AppDomain详解
- 什么是A类、B类、C类地址?
- CentOS下快速搭建LAMP环境
- Disjoint sets(并查集)
- (HDUStep 1.2.7)IBM Minus One(字符串运算)
- Mybatis学习笔记
- memcached 学习
- Yii中ajax提交注意事项
- 通识基础_正负数二进制的表示
- 编程规范的笔记
- Hibernate主键生成策略
- 用MySQL创建数据库和数据库表
- adb命令执行过程解析
- 寒假14项目1——动态链表体验(修改1)