您的位置:首页 > 其它

Mybatis数据操作

2016-07-05 20:06 375 查看
1.通过外部配置文件做mybatis的基础性的配置。

1)先编写config.properties的文件(做一些动态的配置)。

配置的内容如下:

jdbc.jdbcUrl=jdbc:oracle:thin:@127.0.0.1:1521:orcl

jdbc.driverClass=oracle.jdbc.driver.OracleDriver

jdbc.user=bbs

jdbc.password=123

2)在mybatis-config.xml文件下引入config.properties文件。

<?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="config.properties"><!—引入外部的配置文件-->

  </properties>

  <environments default="development">

    <environment id="development">

      <transactionManager type="JDBC"/>

      <dataSource type="POOLED">

        <property name="driver" value="${jdbc.driverClass}"/>

        <property name="url" value="${jdbc.jdbcUrl}"/>

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

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

      </dataSource>

    </environment>

  </environments>

 

  <mappers>

     <mapper resource="com/gxa/bj/model/UserInfoMapper.xml"/>

  </mappers>

</configuration>

3)做一个SQL映射文件:

 

 

2.Mapper接口代理的实现。

1)先定义一个接口(主要针对数据库表操作的接口)。比如:

package com.gxa.bj.dao;

 

 

 

import java.util.List;

 

/**

 * 针对数据库的数据的增删改查的功能做的接口

 * @author ZY

 *

 */

public interface
IDaoBBS<T> {

    /**

     * 向数据库表里添加一条数据的方法

     * @param t

     * @throws SQLException

     * @throws IllegalAccessException

     * @throws IllegalArgumentException

     */

    public int  addItem(T t);

    /**

     * 从数据库表里删除一条数据的方法

     * @param objId

     */

    public int removeItem(Object objId);

    /**

     * 更新数据库表里的一条字段的方法

     * @param t

     */

    public int updateItem(T t);

    

    /**

     * 根据主键字段获取该条数据,并转换成实体对象

     * @param objId

     * @return

     * @throws InvocationTargetException

     * @throws IllegalArgumentException

     * @throws IllegalAccessException

     * @throws SecurityException

     * @throws NoSuchMethodException

     */

    public T getModel(Object objId) ;

    

    /**

     * 根据查询条件获取多条数据,并转换成相应的集合

     * @param objects

     * @return

     * @throws InvocationTargetException

     * @throws IllegalArgumentException

     * @throws IllegalAccessException

     * @throws SecurityException

     * @throws NoSuchMethodException

     */
a94c

    public List<T> getList(T t);

}

再针对该接口做一个针对UserInfo表的实现的接口:

package com.gxa.bj.dao.imp;

 

import com.gxa.bj.dao.IDaoBBS;

import com.gxa.bj.model.UserInfo;

 

public interface
UserMapper extends IDaoBBS<UserInfo> {

     

}

2)在SQL的映射的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="com.gxa.bj.dao.imp.UserMapper">

   <insert id="addItem" parameterType="com.gxa.bj.model.UserInfo">

       insert into UserInfo(userid,username,userpwd,useremail,useraddress,regreason)

       values(usernext.nextval,#{userName},#{userPwd},#{userEmail},#{userAddress},#{regReason})

   </insert>

   <delete id="removeItem">

        delete from UserInfo where userId=#{id}

   </delete>

</mapper>

注意:namespace里是所针对的接口的名称(包括包名)。

      接口里的方法全部定义为SQL语句的ID名。比如接口里有一个叫做addItem的方法,那么在SQL语句里就有一个id名为addItem的sql语句。

3)编写相应的测试代码:

public static void main(String[] args) {

// TODO Auto-generated method stub

String resource = "mybatis-config.xml";

     InputStream inputStream = null;

try {

inputStream = Resources.getResourceAsStream(resource);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

     SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

     SqlSession sqlSession = sqlSessionFactory.openSession();

        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

UserInfo u= new UserInfo();

u.setRegReason("hhhh");

u.setUserAddress("cd");

u.setUserEmail("addmin@aa.com");

u.setUserName("zhangsan222");

u.setUserPwd("345");

if(userMapper.addItem(u)>0){

sqlSession.commit();

System.out.println("操作成功");

}else{

System.out.println("操作失败");

}

if(userMapper.removeItem(101)>0){

sqlSession.commit();

System.out.println("删除成功");

}else{

System.out.println("删除失败");

}

sqlSession.close();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: