MyBatis的配置

来源:互联网 发布:百合网淘宝女店主 编辑:程序博客网 时间:2024/06/05 05:11

1.导包


2.创建一个SourceFile的文件夹命名configer(名字随意)

     0.在src目录下创建一个实体包这里我用的是com.zy.entity

           1.创建一个User的实体类(与数据库一一对应)

    2.创建myBatis-config.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" /><!-- 使用jdbc事务 -->
<dataSource type="POOLED">
   <!-- 四大组件  驱动,连接路径,用户名,密码-->
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mydb01" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<!-- 映射引用 -->
<mappers>
<!-- <mapper resource="org/mybatis/example/BlogMapper.xml" /> -->
<mapper resource="mapper/UserMapper.xml" />--user类的mapper的配置
<!-- <mapper resource="org/mybatis/example/BlogMapper.xml" /> -->
<mapper resource="mapper/StudentMapper.xml" />--student类的mapper的配置
</mappers>
     </configuration>

3.在configer目录下创建一个mapper的包配置user的mapper的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="myMapper"><!-- namespace代表此mapper的唯一标识 -->
<!-- 这个mapper中是用来写sql语句的地方 -->
<!-- 指定id名和resultType返回值类型,如果返回值是集合,写其中的泛型就行 -->
<select id="s1" resultType="com.zy.entity.User">
  select * from user3;
</select>

//可以进行增删改查操作

//如果参数为多个#{}括号的内容要与属性名一致:因为以后我们要用对象传值 
</mapper>

4.在src目录下创建一个mybatis的工具包

 package com.zy.myBatisUtil;


import java.io.IOException;


import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;


public class MyBatisUtil {
// 配置文件生成Sqlsession工厂
/*
* String resource = "org/mybatis/builder/mybatis-config.xml"; InputStream
* inputStream = Resources.getResourceAsStream(resource);
* SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
* SqlSessionFactory factory = builder.build(inputStream);
*/
// Sqlsession工厂:Sqlsession指服务端端跟数据库之间的会话 工厂:生产session的地方
// web:session客户和服务器的会话
// 为什么使用单例(单例,一个实例对象,在项目中我们只需要一个工厂,但是需要多个会话)


// 1
private static SqlSessionFactory factory = null;
// 2把获取步骤写在static中:类一加载自动运行
static {
try {
factory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("myBatis-config.xml"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//写出getSqlsessionFactory方法
public static SqlSessionFactory getSqlSeesionFactory(){
return factory;
}
}

5.可以创建一个测试类

    1.右键buildpath在libraries中添加Jutil4的包

         可以创建一个测试类

          @Test---表示是测试的注解

  

          public void test(){

                //得到SqlSessionFactory
   SqlSessionFactory sqlSeesionFactory = MyBatisUtil.getSqlSeesionFactory();
   //得到session
   SqlSession session = sqlSeesionFactory.openSession();
   //执行session.selectList("id");mapper.xml中的id
   List<User> selectList = session.selectList("myMapper.s1");
   //查看执行结果
   for (User user : selectList) {
    System.out.println(user.toString());
}

          }

6.CDATA转义

     增删改需要事务的提交,查询不需要
        session.commit();
     因为sql写在xml中,如果遇到<请使用<![CDATA[  ]]>转义主要是为了识别<和标签的区别
      <![CDATA[select  id ,name  from myuser where name like #{name} and  birthday  <   #{birthday}  ]]>


原创粉丝点击