2.一个应用MyBatis对数据库访问的操作

先导驱动,数据库的和MyBatis的,sql的找不到了,切记要导入或者写log4j.properties文件

然后第一步,写一个小的pojo类,这个没啥说的,对应数据库里的字段,

package pojo;

public class Role {

    private String id;

    private String text;

    private String un;

    public String getId() {

         return id;

    }

    public void setId(String id) {

         this.id = id;

    }

    public String getText() {

         return text;

    }

    public void setText(String text) {

         this.text = text;

    }

    public String getUn() {

         return un;

    }

    public void setUn(String un) {

         this.un = un;

    }

}

然后写RoleMapper接口,这个是要写需要完成的逻辑功能的名字,也没啥说的

package mapper;

import java.util.List;

import pojo.Role;

public interface RoleMapper {

    public int insertRole(Role r);

    public int updateRole(Role r);

    public int deleteRole(String id);

    public Role getRole(Long l);

    public List<Role> findRole();

}

然后配置RoleMapper.xml文件,注意,这个mapper里的namespace写上面接口的全限定名,insert等操作的名称也需要和接口里的方法名对应

<?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="mapper.RoleMapper"><!--这个namespace对应的就是接口的全限定名-->

    <insert id="insetRole" parameterType="role">

         insert into test(id,text,un)  values(#{roleName},#{roleText});

    </insert>

    <select id="findRole" resultType="role">

         select * from test;

    </select>

</mapper>

然后配置MyBatis-config文件,最应该注意的是在没提示的情况下的单词拼写,跑了好几遍,都是单词错了

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD  SQL Map Config 3.0//EN"  

    "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

    <typeAliases><!--别名-->

         <typeAlias alias="role" type="pojo.Role"/>

    </typeAliases>

    <!--数据库环境-->

    <environments default="developmen">

         <environment id="developmen">

             <transactionManager  type="JDBC"/><!--代表MyBatis内部提供的数据库连接池-->

             <dataSource type="POOLED">

                 <property name="driver"  value="com.mysql.jdbc.Driver"/>

                 <property name="url"  value="jdbc:mysql://localhost:3306/test?Unicode=true&characterEncoding=utf8"/>

                 <property name="username"  value="root"/>

                 <property name="password"  value="root"/>

             </dataSource>

         </environment>

    </environments>

    <mappers ><!--这个代表了映射到RoleMapper.xml里-->

         <mapper resource="mapper/RoleMapper.xml"/>

    </mappers>

</configuration>

然后写单例的工厂

package utils;

import java.io.IOException;

import java.io.InputStream;

import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import  org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class SqlSessionFactoryUtil {

    private final static  Class<SqlSessionFactoryUtil> lock =  SqlSessionFactoryUtil.class;

    private static SqlSessionFactory  sessionFactory = null;

    private SqlSessionFactoryUtil() {}

    public static SqlSessionFactory  getSqlSessionFactory(){

         synchronized (lock) {

             if(sessionFactory!=null){

                 return sessionFactory;

             }

             String  resource="mybatis/mybatis-config.xml";

             InputStream inputStream;

             try {

                 inputStream=  Resources.getResourceAsStream(resource);

                 sessionFactory = new  SqlSessionFactoryBuilder().build(inputStream);

             } catch (IOException e) {

                 // TODO Auto-generated catch block

                 e.printStackTrace();

             }

         }

         return sessionFactory;

    }

    public static SqlSession openSqlSession(){

         if(sessionFactory==null){

             getSqlSessionFactory();

         }

         return sessionFactory.openSession();

         

    }

}

测试类

package main;

import org.apache.ibatis.session.SqlSession;

import org.apache.log4j.Logger;

import mapper.RoleMapper;

import pojo.Role;

import utils.SqlSessionFactoryUtil;

public class Main {

    public static void main(String[] args) {

         Logger log = Logger.getLogger(Main.class);//这个应该是记录的

         SqlSession sqlSession = null;

         try{

             sqlSession =  SqlSessionFactoryUtil.openSqlSession();

             RoleMapper mapper =  sqlSession.getMapper(RoleMapper.class);

             //Role role = mapper.getRole(1L);//这么写会报错,至于为啥呢,因为我懒,没在RoleMapper里写啊

             Role role = mapper.findRole().get(0);

             log.info(role);

             //log.info(role.getId());

         }finally{

             if(sqlSession!=null){

                 sqlSession.close();

             }

         }

         

    }

}

---------------------------------------------------------------------------------------分割线,输出结果 部分-------------------------------------------------------------------------------------------------------------

INFO - pojo.Role@627551fb

到这里一个简单地MyBatis测试就完成了,还是用了我一上午时间学习,接下来就是理论的了,痛苦T^T

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值