jetty+spring+mybatis (三)

来源:互联网 发布:矩阵组织项目组织结构 编辑:程序博客网 时间:2024/06/10 15:36

参考博客 

http://blog.csdn.net/chenxiaochan/article/details/56025650


接下来是要实习dao层

集成 mybatis

文件目录如下


首先要在数据库建立对应的表


建立对应表



配置资源



资源代码如下:

资源配置说明:

1  SqlMapConfig.xml 设置sql连接配置文件,设置自动扫描位置

2  配置好之后直接加载这些信息,使用mybatis 的 ibatis加载文件流配置信息

3  ibatis 先获取到连接,然后根据mappers获取到所有映射对象的配置

4 根据  resultType="com.easysoft.cn.po.User" 获取到映射对象实体类 结合select  sql 即可查询到对象



SqlMapConfig.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>    <!-- 加载属性文件 -->    <properties resource="db.properties">        <!--properties中还可以配置一些属性名和属性值  -->        <!-- <property name="jdbc.driver" value=""/> -->    </properties>    <!-- 全局配置参数,需要时再设置 -->    <!-- <settings>    </settings> -->    <!-- 别名定义 -->    <typeAliases>        <!-- 针对单个别名定义        type:类型的路径        alias:别名         -->        <!-- <typeAlias type="cn.itcast.mybatis.po.User" alias="user"/> -->        <!-- 批量别名定义        指定包名,mybatis自动扫描包中的po类,自动定义别名,别名就是类名(首字母大写或小写都可以)        -->        <package name="com.easysoft.cn.po"/>    </typeAliases>    <!-- 和spring整合后 environments配置将废除-->    <environments default="development">        <environment id="development">            <!-- 使用jdbc事务管理,事务控制由mybatis-->            <transactionManager type="JDBC" />            <!-- 数据库连接池,由mybatis管理-->            <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>        <mapper resource="sqlmap/User.xml"/>    </mappers></configuration>

db.properties  数据库连接


jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/testjdbc.username=rootjdbc.password=1

User.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"><!-- namespace命名空间,作用就是对sql进行分类化管理,理解sql隔离注意:使用mapper代理方法开发,namespace有特殊重要的作用--><mapper namespace="test">    <!-- 在 映射文件中配置很多sql语句 -->    <!-- 需求:通过id查询用户表的记录 -->    <!-- 通过 select执行数据库查询    id:标识 映射文件中的 sql    将sql语句封装到mappedStatement对象中,所以将id称为statement的id    parameterType:指定输入 参数的类型,这里指定int型    #{}表示一个占位符号    #{id}:其中的id表示接收输入 的参数,参数名称就是id,如果输入 参数是简单类型,#{}中的参数名可以任意,可以value或其它名称    resultType:指定sql输出结果 的所映射的java对象类型,select指定resultType表示将单条记录映射成的java对象。     -->    <select id="findUserById" parameterType="string" resultType="com.easysoft.cn.po.User">        SELECT * FROM USER WHERE id=#{id}    </select></mapper>
获取sql 服务相关类


MybatisFirst

package com.easysoft.cn.po;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;import java.io.InputStream;/** * * Title: MybatisFirst * * @author chenxiaochan */public class MybatisFirst {    // 根据id查询用户信息,得到一条记录结果    public void findUserByIdTest() throws IOException {        // mybatis配置文件        String resource = "SqlMapConfig.xml";        // 得到配置文件流        InputStream inputStream = Resources.getResourceAsStream(resource);        // 创建会话工厂,传入mybatis的配置文件信息        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()                .build(inputStream);        // 通过工厂得到SqlSession        SqlSession sqlSession = sqlSessionFactory.openSession();        // 通过SqlSession操作数据库        // 第一个参数:映射文件中statement的id,等于=namespace+"."+statement的id        // 第二个参数:指定和映射文件中所匹配的parameterType类型的参数        // sqlSession.selectOne结果 是与映射文件中所匹配的resultType类型的对象        // selectOne查询出一条记录        User user = sqlSession.selectOne("test.findUserById", "1wer3");        System.out.println(user);        // 释放资源        sqlSession.close();    }}

启动一个请求测试即可


@RequestMapping(value = "/hello")@ResponseBodypublic String showIndex() {    MybatisFirst mby=new MybatisFirst();    try {        mby.findUserByIdTest();    } catch (IOException e) {        e.printStackTrace();    }    return "this is test";}

项目源码

http://download.csdn.net/download/itcastldh/10040556


阅读全文
0 0
原创粉丝点击