Ibatis3入门学习

<!-- [if gte mso 10]> <mce:style><!-- /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} -->

<!-- [endif]-->

Ibatis3 入门学习笔记

<!-- [if !supportLists]-->一、 <!-- [endif]-->搭建环境

<!-- [if !supportLists]-->1. <!-- [endif]-->下载包

下载地址: http://www.mybatis.org/java.html

<!-- [if !supportLists]-->2. <!-- [endif]-->解压

<!-- [if !supportLists]-->3. <!-- [endif]-->新建 web 项目 testMyBatis

并将解压出来的包拷贝到新建项目中的 WebRoot/lib:

asm-1.5.3.jar

cglib-2.1_3.jar

commons-logging-1.1.1.jar

mybatis-3.0.1.jar

slf4j-api-1.5.8.jar

slf-log4j12-1.5.8.jar

由于我用到的是 SQL Server 数据库,所以要将相应的 DB 驱动拷贝到 lib 中:

Jtds-1.1.jar

4. 新建包

com.test.model

com.test.dao

<!-- [if !supportLists]-->二、 <!-- [endif]-->DB 表说明

要测试的表名 t_user, 结构如下:

CREATE TABLE [dbo] . [t_user] (

[id] [bigint] IDENTITY ( 1, 1) NOT NULL,

[name] [varchar] ( 20) NOT NULL,

[age] [int] NOT NULL

) ON [PRIMARY]

<!-- [if !supportLists]-->三、 <!-- [endif]-->创建对象文件

1.src/log4j.properties

log4j.rootLogger= DEBUG, stdout

log4j.appender.stdout= org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout= org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern= %c {1} - %m%n

log4j.logger.java.sql.PreparedStatement= DEBUG

2.src/sqlmap-config.xml

<? xml version = "1.0" encoding = "UTF-8" ?>

<! DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-config.dtd" >

< configuration >

< typeAliases >

< typeAlias type = "com.test.model.User" alias = "user" />

</ typeAliases >

< environments default = "development" >

< environment id = "development" >

< transactionManager type = "JDBC" />

< dataSource type = "UNPOOLED" >

< property name = "driver"

value = "net.sourceforge.jtds.jdbc.Driver" />

< property name = "url" value = "jdbc:jtds:sqlserver://192.168.0.101:1433/test" />

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

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

</ dataSource >

</ environment >

</ environments >

< mappers >

< mapper resource = "com/test/model/User.xml" />

</ mappers >

</ configuration >

3.com.test.model.User.java

package com.test.model;

import java.io.Serializable;

public class User implements Serializable {

private static final long serialVersionUID = 8681358563101101660L;

private long id ;

private String name ;

private int age ;

public long getId() {

return id ;

}

public void setId( long 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;

}

}

4.com.test.model.User.xml

<? xml version = "1.0" encoding = "UTF-8" ?>

<! DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd" >

< mapper namespace = "user" >

< resultMap type = "user" id = "userMapper" >

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

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

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

</ resultMap >

< select id = "getUserById" parameterType = "int" resultMap = "userMapper" >

select * from t_user where id = #{id}

</ select >

< select id = "getUserList" resultMap = "userMapper" >

select * from t_user

</ select >

< insert id = "insert" >

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

</ insert >

< delete id = "delUserById" >

delete from t_user where id=#{id}

</ delete >

< update id = "update" >

update t_user set name = #{name}, age=#{age}

where id=#{id}

</ update >

</ mapper >

5.com.test.dao.IbatisSessionFactory.java

package com.test.dao;

import java.io.IOException;

import java.io.Reader;

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

private static SqlSessionFactory sqlMapper;

private static SqlSession sqlSession;

static{

try{

String resource = "sqlmap-config.xml";

Reader reader = Resources.getResourceAsReader(resource);

sqlMapper = new SqlSessionFactoryBuilder().build(reader);

}catch(IOException e){

e.printStackTrace();

}

}

public static SqlSession getSqlSession(){

sqlSession = sqlMapper.openSession();

return sqlSession;

}

public static void closeSqlSession(){

if(sqlSession!=null){

sqlSession.close();

}

}

}

6.com.test.dao.UserDaoInte.java

package com.test.dao;

import java.util.List;

import com.test.model.User;

public interface UserDaoInte {

public User getUserById(Long id);

public void addUser(User user);

public void delUser(Long id);

public void updateUser(User user);

public List<User> getUserList();

}

7.com.test.dao.UserDao.java

package com.test.dao;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import com.bd.dao.IbatisSessionFactory;

import com.test.model.User;

public class UserDao implements UserDaoInte{

@Override

public void addUser(User user) {

SqlSession session = IbatisSessionFactory.getSqlSession ();

session.insert( "insert" , user);

session.commit();

session.close();

}

@Override

public void delUser(Long id) {

SqlSession session = IbatisSessionFactory.getSqlSession ();

session.delete( "delUserById" , id);

session.commit();

session.close();

}

@Override

public User getUserById(Long id) {

SqlSession session = IbatisSessionFactory.getSqlSession ();

User user = (User)session.selectOne( "getUserById" , id);

session.commit();

session.close();

return user;

}

@Override

public void updateUser(User user) {

SqlSession session = IbatisSessionFactory.getSqlSession ();

session.update( "update" , user);

session.commit();

session.close();

}

@Override

public List<User> getUserList() {

SqlSession session = IbatisSessionFactory.getSqlSession ();

List<User> list = (List)session.selectList( "getUserList" );

session.commit();

session.close();

return list;

}

}

8. 写一个测试类 com.test.dao.Test.java

package com.test.dao;

import java.util.List;

import com.test.model.User;

public class Test {

public static void main(String[] args) {

UserDaoInte dao = new UserDao();

// 增加部分

User user = new User();

user.setAge(24);

user.setName( "name 4" );

dao.addUser(user);

// 获取单个对象部分

//User user = dao.getUserById(2L);

//System.out.println(user.getName());

// 更新部分

//user.setName("test name2");

//dao.updateUser(user);

// 删除

//dao.delUser(0L);

// 获取全部数据

//List<User> users = dao.getUserList();

//System.out.println(users.size());

}

}

<!-- [if !supportLists]-->四、 <!-- [endif]-->采用注解方式

<!-- [if !supportLists]-->1. <!-- [endif]-->com.test.model.User.xml

<? xml version = "1.0" encoding = "UTF-8" ?>

<! DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd" >

< mapper namespace = "com.test.dao.UserDaoInte" ></ mapper >

<!-- [if !supportLists]-->2. <!-- [endif]-->UserDaoInte.java

package com.test.dao;

import java.util.List;

import org.apache.ibatis.annotations.Select;

import com.test.model.User;

public interface UserDaoInte {

@Select ( "select * from t_user" )

public List<User> getUserList();

}

<!-- [if !supportLists]-->3. <!-- [endif]-->测试代码

public static void main(String[] args) {

SqlSession session = IbatisSessionFactory.getSqlSession ();

UserDaoInte dao = session.getMapper(UserDaoInte. class );

List<User> list = dao.getUserList();

System. out .println(list.size());

}

4 .说明

在通过接口 + 元注释的方式定义 SqlMapper 。此时就不需要接口的实现类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值