mybatis_demo

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

笔者今天搭了一个mybatis的demo 玩了下  结构如下图所示 resource下放一些配置文件 dao下放映射器文件 entity放实体文件  也就是数据库要注入对象的想关的类


首先既然是和数据库相关 我们在mysql 上新建一张student 表





其次我们要写配置文件mybatis_cfg.xml  以生成SeqSessonFactory   

<?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>

    <properties resource="resource/jdbc.properties"/>
    <typeAliases>
        <!--<typeAlias type="entity.Student"/>-->
        <package name="entity"/>//数据库要注入的对象放在entity内
    </typeAliases>
    <environments default="mybatis-demo">
        <environment id="mybatis-demo">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <package name="dao"/>
    </mappers>
jdbc.properties:存放url driver 用户名和密码
 
 
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mysql_demo
jdbc.username=root
jdbc.password=root
下面我们来写映射器,映射器有接口和对应的xml 文件组成 
 
我们这里拿StudentMapper 举例 这里
 
 
public interface StudentMapper {
    int insertStudent(Student student) throws  Exception;
    Student selectOneById(int id) throws  Exception;
    List<Student> selectAllstudent() throws  Exception;

}
对应的StudentMapper.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="dao.StudentMapper">
    <resultMap id="studentMapper" type="entity.Student">
         <id column="sid" property="id"/>
        <result property="name" column="Sname"/>
        <result property="sex" column="Ssex"/>
        <result property="tid" column="Tid"/>
        <result property="age" column="SageNum"/>
    </resultMap>
    <insert id="insertStudent" parameterType="entity.Student">
        INSERT  into student  (sid,sname,ssex,tid,sagenum) VALUES (#{id},#{name},#{sex},#{tid},#{age})




    </insert>
    
    
</mapper>
映射器写好了 我们就可以测试:
新建Main 类作为测试类
 
 
import dao.StudentMapper;
import entity.Student;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.InputStream;

public class Main {
    public static void main(String[] args) throws Exception{
        InputStream in=Main.class.getResourceAsStream("resource/mybatis_cfg.xml");
        SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(in);//构建SqlSessionFactory
        SqlSession session=factory.openSession();//得到SqlSession
        StudentMapper mapper=session.getMapper(StudentMapper.class);
        Student student=new Student(1,"老张","男",12,12);
        mapper.insertStudent(student) ;
        session.commit();
        session.close();

    }
}
运行你会发现student多了 这天记录







猜你喜欢

转载自blog.csdn.net/kingjiayu/article/details/80472610
今日推荐