MyBatis-访问MySQL数据库学习

一 新建Web Project工程

    启动MyEclipse(我机器安装,应该Eclipse也可以),新建一个Web Project工程,我的工程名称是MybatisTest。你看到工程目录结构如下:

MyBatis-访问MySQL数据库学习_第1张图片

二 MyBatis访问数据库配置

        1. 把MyBatis相关的Jar包拷贝到WebRoot\WEB-INF\lib下,Jar包主要包含两个mybatis-3.1.0.jar、mysql-connector-java-5.1.25-bin.jar。MyBatis-访问MySQL数据库学习_第2张图片

        2. 首先在src包下,建一个conf.xml文件,该文件主要是配置数据库类型、本机的MySQL的URL、访问数据库用户名和密码等信息。在MySQL建mybatis数据库,在其下建一个users表。conf.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" />

                    <!-- 配置数据库连接信息 -->

                    <dataSource type="POOLED">

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

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

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

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

                    </dataSource>

                </environment>

            </environments>

        </configuration>

        3. 创建数据库和users表代码如下:

        create database mybatis;

        use mybatis;

        CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20), age INT);

        4. 在src包下建数据模型包com.founder.model,在该包下添加User类,User是与数据库的users表是对应。

public class User {

//实体类的属性和表的字段名称一一对应

    private int id;

    private String name;

    private int age;


    public int getId() {

        return id;

    }

    public void setId(int id) {

        this.id = id;

    }

    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 "User [id=" + id + ", name=" + name + ", age=" + age + "]";

    }

}

三 简单访问数据库的操作

    1. 在src包下创建com.founder.mapping包,再新建userMapping.xml文件,该文件包含对数据库的操作,这类xml文件格式说明见http://limingnihao.iteye.com/blog/781911。userMapping.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="userMapping">


    <resultMap type="com.founder.model.User" id="userResultMap">   

        <result property="id" column="id"/>  

        <result property="name" column="name"/>  

        <result property="age" column="age"/>  

    </resultMap>

     

    <!-- 

        根据id查询得到一个user对象

     --> 

    <select id="getUser" parameterType="int" resultType="com.founder.model.User">

        select * from users where id=#{id}

    </select>

    

    <!-- 

        查询users表的所有内容

     -->

    <select id="getAllUser" resultMap="userResultMap">

    <![CDATA[ 

    select * from users order by age

    ]]> 

    </select>

    

    <!-- 

        插入users

     -->

    <insert id="addUser" parameterType="com.founder.model.User">

    <![CDATA[ 

    insert into users (name, age) values (#{name}, #{age})

    ]]> 

    </insert>

</mapper>

    2. 在conf.xml配置一下userMapping.xml,详细如下:

MyBatis-访问MySQL数据库学习_第3张图片

    3. 在src包下新建包com.founder.test,在该包下创建一个Test类,该类具体来测试对数据库的操作。代码如下:

package com.founder.test;

import com.founder.model.User;

import java.io.IOException;

import java.io.InputStream;

import java.util.List;


import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;


public class Test {

/**

* @param args

*/

public static void main(String[] args) throws IOException {

// TODO Auto-generated method stub


//mybatis的配置文件

        String resource = "conf.xml";

        

        //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)

        InputStream is = Test.class.getClassLoader().getResourceAsStream(resource);

        

        //构建sqlSession的工厂

        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);

        

        //创建能执行映射文件中sql的sqlSession

        SqlSession session = sessionFactory.openSession();


        //操作数据库

        

        //执行查询返回一个唯一user对象的sql

        User user = session.selectOne("userMapping.getUser", 1);

        System.out.println(user);

        

        // 插入数据

        User addUser = new User();

        //addUser.setId(8);

        addUser.setAge(23);

        addUser.setName("guoyu");

        session.insert("userMapping.addUser", addUser);

        

        session.commit();// 必须提交,不然数据库里看不到实际效果


        //查询所有用户信息

        List<User> userList = session.selectList("userMapping.getAllUser");  

        for( User entityTemp : userList){  

            System.out.println(entityTemp);  

        }

}

}

    3. 工程目录截图如下:

MyBatis-访问MySQL数据库学习_第4张图片

你可能感兴趣的:(mysql,mybatis)