Mybatis初学

Mybatis简介大家可以自行google之。官网为:http://code.google.com/p/mybatis/

我也刚刚开始初学,先来一个小例子:

创建一个User.java文件,代码如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

package com.rollen;

 

public class User {

    private String name;

    private int age;

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

    public int getAge() {

        return age;

    }

    public void setAge(int age) {

        this.age = age;

    }

    @Override

    public String toString() {

         

        return "Name:"+name+"Age"+age;

    }

     

     

}

  上面的java文件位于com.rollen包中,然后在这个包中建立generator.xml文件,代码为:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<?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 alias="User" type="com.rollen.User" /> 

    </typeAliases

    <environments default="development"> 

        <environment id="development"> 

            <transactionManager type="JDBC" /> 

            <dataSource type="POOLED"> 

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

                <property name="url" value="jdbc:mysql://localhost:3306/user_db" /> 

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

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

            </dataSource

        </environment

    </environments

    <mappers

        <mapper resource="com/rollen/user.xml" /> 

    </mappers

</configuration

  在com.rollen包下面创建user.xml文件,代码为:


1

2

3

4

5

6

7

8

<?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="com.rollen.User">

    <select id="selectUser" parameterType="int" resultType="User" >

         select * from user where age = #{age}

    </select>

</mapper>

我们最后编写一个测试类,代码如下“:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

package com.rollen;

import java.io.*;

 

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 Test {

    public static void main(String[] args) {

        String resource="com/rollen/generatorConfig.xml";

        Reader reader = null;

        try {

            reader = Resources.getResourceAsReader(resource);

        catch (IOException e) {

            e.printStackTrace();

        }

        SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(reader);

        SqlSession sqlSession = factory.openSession();

         

        try {

            User user=sqlSession.selectOne("selectUser"10);

            System.out.println(user);

        }finally{

            sqlSession.close();

        }

         

    }

}

  在上面的generateConfig.xml文件中,也可以改为这样:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

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

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

    </properties>

    <typeAliases>

        <typeAlias alias="User" type="com.rollen.User" />

    </typeAliases>

    <environments default="development">

        <environment id="development">

            <transactionManager type="JDBC" />

            <dataSource type="POOLED">

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

                <property name="url" value="jdbc:mysql://localhost:3306/user_db" />

                <property name="username" value="${username}" />

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

            </dataSource>

        </environment>

    </environments>

    <mappers>

        <mapper resource="com/rollen/user.xml" />

    </mappers>

</configuration

  注意,和上面的区别是我们添加了:


1

2

3

<properties>

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

    </properties>

  并且修改了这行代码:


1

<property name="username" value="${username}" />

  还可以有如下的修改方法,新建一个config.properties文件,文件内容为:


1

password=root

  然后将generatorconfig.xml文件的内容改为:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

<?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="com/rollen/config.properties">

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

    </properties>

    <typeAliases>

        <typeAlias alias="User" type="com.rollen.User" />

    </typeAliases>

    <environments default="development">

        <environment id="development">

            <transactionManager type="JDBC" />

            <dataSource type="POOLED">

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

                <property name="url" value="jdbc:mysql://localhost:3306/user_db" />

                <property name="username" value="${username}" />

                <property name="password" value="${password}" />

            </dataSource>

        </environment>

    </environments>

    <mappers>

        <mapper resource="com/rollen/user.xml" />

    </mappers>

</configuration

  需要注意的是如下的两行代码:


1

2

3

<properties resource="com/rollen/config.properties">

....

<property name="password" value="${password}" />

时间: 2025-01-23 16:23:32

Mybatis初学的相关文章

初学mybatis,遇到些问题

问题描述 初学mybatis,遇到些问题 报错是Attribute "resource" must be declared for element type "mapper" 代码: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN&quo

小弟初学mybatis ,查询数据报错

问题描述 小弟初学mybatis ,查询数据报错 Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.lang.ArrayIndexOutOfBou

请教-请我我一个初学Java的人应该看什么书?????

问题描述 请我我一个初学Java的人应该看什么书????? 大家好,我是一个新手,初学Java,我想请问我大学毕业转行学Java,应该看什么书,在线请教 解决方案 估计你没什么兴趣学什么东西,都毕业了已经过了求知的年龄.你的意图无非是掌握一种能混饭吃的本领. 因此,去耐心学习理论,你不感兴趣. 推荐你看李刚的疯狂系列.比如<疯狂Java讲义>,这种书估计对你找一个初级码农的工作比较有现实的意义. 解决方案二: 超级谢谢,我最近才学的,也乱啊,没办法,为了生活,只有重新学习 解决方案三: 21天

关于使用IntelliJ时myBatis的mapper.xml文件发布问题

问题描述 请教一下我正在使用IntelliJ开发一个数据库应用,用到了myBatis,生成的mapper.xml文件生成到了main/java/下面的某一个类路径中,当我部署和打包生成war文件的时候,在target目录中的对应目录中却没有找到mapper.xml文件,导致运行时错误.问题:我如何才能设置IntelliJ在部署和打包的时候让mapper文件自动的被复制到target目录中classes目录下对应的目录中呢?不好意思,初学使用IntelliJ,问的问题可能有点弱,还请有经验的朋友不

springmvc+mybatis整合 MapperScannerConfigurer配置出错

问题描述 springmvc+mybatis整合 MapperScannerConfigurer配置出错 1C 配置如下: 问题:如果配置了 <property name=""sqlSessionFactoryBeanName"" value=""wechatSqlSessionFactory"" />,启动的时候报错如下:Caused by: org.springframework.beans.factory.B

c++-初学C++ 求超详细的视频教程

问题描述 初学C++ 求超详细的视频教程 本人最近想学C++的编程写3D游戏 却不知道要怎么写 所以要求各位大神告诉我最好看些什么书可以是速成的.或者是超详细视频教程 谢谢 P.S. 如果在Mac上我最好用什么样的编程软件呢? 解决方案 推荐学习路线: 第一:<数据结构与操作系统>必看 第二:<C语言程序设计>必看 第三:<C++程序设计>书可以随便选了,跟着做几个例程 第四:<C++游戏设计指南>书随便选,都差不多.再跟着网上视频教程学就成了. 解决方案二

mybatis 嵌套的结果集不能被安全的转为自定义ResultHandler

问题描述 mybatis 嵌套的结果集不能被安全的转为自定义ResultHandler 如下:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: Mapped Statements with nested result mappings cannot be safely used with a custom ResultHandle

PS后期初学必看的18个问题

  数码摄影发展至今,已经历了好几个年头,同时为数码人像摄影后期处理的教程也如雨后春笋般增多.目前市场上出售的有关这方面的书籍也是五花八门,层出不穷,让读者目不暇接,不知道究竟该怎样后期,才能让自己的技术有所提高.photoshop专业讲师胡艺沛老师为大家整理了初学后期常见的18个摄影问题,希望可以解答你内心对于PS的困惑. 1. 始言 学好PS, 并非一朝一夕.兴趣---是迈向PS高手之路的一个好的开端:如果你本身对PS并不感兴趣,只是因为工作需要而刻意去学,那么你无论拜读哪位大师的教程,或是

初学MVC,哪个大神能帮忙讲一下这个三表查询的代码是什么意思?感谢!

问题描述 初学MVC,哪个大神能帮忙讲一下这个三表查询的代码是什么意思?感谢! var query3 = from q in db.Customers join qq in db.Orders on q.CustomerID equals qq.CustomerID into tmporder join e in db.Employees on q.City equals e.City into tmpemp select new { q.CompanyName, tmporderCount =