Mybatis入门

第一次利用官方文档学习知识,曾经觉得看官网挺难的,今天耐心的看了下去,发现还是挺不错的,这里详细的分享,带小白Mybatis入门。Mybatis官方教程后面不懂的地方可以查看,官网有中文版。

学什么都最好有实例,所以我们用一个实例来带学习。

首先,我们设计下数据库,如图:

这里解释提示下为什么数据类型是这样:

数据类型 占用存储空间 定义格式
Char(n) 定长,最大8KB 存ANSI字符,n为串长度
Varchar(n) 变长,最大8KB 存ANSI字符,n为串长度
Nchar(n) 定长,最大8KB 存Unicode字符,n为串长度
Nvarchar(n) 变长,最大8KB 存Unicode字符,n为串长度
** ANSI Unicode
英文字符 1字节 2字节
汉字 2字节 2字节

如上表所示,例:

Char(5):即长度为5,如果长为5,比如’21545’,即可以存储,如果你存的是’211’,长度为3,而Char是定长,所以211后面会补2个空格。让其强行成为长为5的串,所以Char适合定长。并且Char存的ANSI字符,所以如上表,一个英文占一个字节,而一个中文占两个字节,’西昌6’和’21545’占相同字节,Char适合全英文。

Varchar(5):即长度为5,如果存的数据占5个字节,比如’21545’,即可以存储,如果你存的是’211’,只有3个字节,而Varchar是变长,依然存储’211’,不补充空格。

NChar(5):即长度为5,’西昌666’和’仙剑奇侠传’就占相同字节,所以NChar适合中/英混合。

接下来我们创建项目,如图所示:

创建实体类:

public class Student {

    private int ID;
    private String Name;
    private String Phone;
    private String Age;
    public int getID() {
        return ID;
    }
    public void setID(int iD) {
        ID = iD;
    }
    public String getName() {
        return Name;
    }
    public void setName(String name) {
        Name = name;
    }
    public String getPhone() {
        return Phone;
    }
    public void setPhone(String phone) {
        Phone = phone;
    }
    public String getAge() {
        return Age;

    public void setAge(String age) {
        Age = age;
    }

    public Student(String name, String phone, String age) {
        super();
        Name = name;
        Phone = phone;
        Age = age;
    }

    public Student() {}

}

导入Mybatis和jdbc的包,创建Configuration.xml文件,可以在你下载的Mybatis压缩包中找到这个xml文件,复制过来,这里用的SQL Server2008,自己可以配置数据库的名字,密码,驱动等,如下:




<configuration>
  <settings>
    <setting name="useGeneratedKeys" value="false"/>
    <setting name="useColumnLabel" value="true"/>
  settings>

  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC">
        <property name="" value=""/>
      transactionManager>
      <dataSource type="UNPOOLED">
        <property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
        <property name="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=MybatisTest"/>
        <property name="username" value="sa"/>
        <property name="password" value="123456"/>
      dataSource>
    environment>
  environments>

  
  <mappers>
    <mapper resource="sqlxml/Student.xml"/>
  mappers>

configuration>

再创建Student.xml,配置如下(也可以找到):




<mapper namespace="Student">

    
  <resultMap type="com.entity.Student" id="StudentResult">
    <id column="ID" jdbcType="INTEGER" property="ID"/> 
    <result column="Name" jdbcType="NVARCHAR" property="Name"/>  
    <result column="Phone" jdbcType="NCHAR" property="Phone"/>
    <result column="Age" jdbcType="NCHAR" property="Age"/>
  resultMap>

    
  <select id="queryStudentList" parameterType="com.entity.Student" resultMap="StudentResult">
    select * from Student where Name=#{name}
  select>

mapper>

以上配置完成之后就可以开始测试了。

public class DBTest {

    public static void main(String[] args) {
        List list = new ArrayList();
        SqlSession session = null;
        try {
            //此处为官网推荐做法
            InputStream inputStream = Resources.getResourceAsStream("configure/Configuration.xml");
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            session = sqlSessionFactory.openSession();

            //这里是参数查询的设置,查询名字为吕布的学生
            Student student = new Student();
            student.setName("吕布");
            list = session.selectList("Student.queryStudentList", student);

            list.forEach((stu) ->  System.out.println(stu.getName()+" "+stu.getAge()+" "+stu.getPhone()));
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //每次用完都要关闭
            if(session!=null){
                session=null;
            }
        }
    }

}

以上就完成了查询操作了,是不是很简单,update以及删除和这类似,可以去官网查看,就不多说啦。

你可能感兴趣的:(Mybatis)