根据传智播客ibatis视频教程编写的入门例子
来源:互联网 发布:淘宝网店怎么装修店铺 编辑:程序博客网 时间:2024/04/28 05:20
IUserDAOImpl.java
package com.elifefly;
/*
* 说明:程序是根据传智播客ibatis视频教程编写的入门例子。
* 目的在于熟悉ibatis的基本原理和基本使用方法。
* 因而程序并没有过多的开发成一个系统,ibatis视频教程也没有做成系统的,也没有给任何源代码。
*
* 开发环境:MyEclipse 6.0
* 数据库:MySQL5.0
*
* 要添加的jar包:mysql-connector-java-3.1.10-bin.jar
* 和ibatis-2.3.3.720压缩包下的lib文件夹下的ibatis-2.3.3.720.jar
*
* 测试使用,选中IUserDAOImpl.java文件,选择run as Java Application
*/
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;
import com.ibatis.sqlmap.client.SqlMapClient;
public class IUserDAOImpl implements IUserDAO
{
private static SqlMapClient sqlMapClient = null;
static
{
try
{
Reader reader = com.ibatis.common.resources.Resources.getResourceAsReader("com/elifefly/SqlMapConfig.xml");
sqlMapClient = com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//添加用户
public void addUser(User user)
{
try
{
sqlMapClient.insert("insertUser",user);
} catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//添加用户,获取自动增长的序列号,处理添加相同的userId情况
public void addUserBySequence(User user)
{
try
{
sqlMapClient.insert("insertUserBySequence",user);
} catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//删除用户
public void deleteUserById(int id)
{
try
{
System.out.println(sqlMapClient.delete("deleteUserById",102));
//如果打印出来的值大于0,说明删除成功
System.out.println("如果打印出来的值大于0,说明删除成功");
} catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//查找所有用户
public List<User> queryAllUser()
{
List<User> userList = null;
try
{
userList = sqlMapClient.queryForList("selectAllUser");
} catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return userList;
}
//通过id查找用户
public User queryUserById(int id)
{
User user = null;
try
{
user = (User)sqlMapClient.queryForObject("selectUserById",id);
} catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return user;
}
//模糊查询,通过用户名查找用户
public List<User> queryUserByName(String name)
{
List<User> userList = null;
try
{
userList = sqlMapClient.queryForList("selectUserByName",name);
} catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return userList;
}
//修改用户
public void updateUser(User user2)
{
try
{
System.out.println(sqlMapClient.update("updateUserById",user2));
//如果打印出来的值大于0,说明更新成功
System.out.println("如果打印出来的值大于0,说明更新成功");
} catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
IUserDAOImpl iUserDAOImpl = new IUserDAOImpl();
//1.测试queryAllUser()
System.out.println("1.测试queryAllUser()");
for(User user:iUserDAOImpl.queryAllUser())
{
System.out.println(user);
}
//2.测试queryUserById(int id)]
System.out.println("/n2.测试queryUserById(int id)");
System.out.println(iUserDAOImpl.queryUserById(1));
//3.测试addUser(User user)
System.out.println("/n3.测试addUser(User user)");
User user = new User();
user.setUserId(102);
user.setUserName("elifefly");
user.setUserPassword("123456");
user.setUserFlag("超级管理员");
iUserDAOImpl.addUser(user);
System.out.println(iUserDAOImpl.queryUserById(102));
//4.测试deleteUserById(int id)
System.out.println("/n4.测试deleteUserById(int id)");
iUserDAOImpl.deleteUserById(102);
//5.测试updateUser(User user)
System.out.println("/n5.测试updateUser(User user)");
User user2 = new User();
user2.setUserId(101);
user2.setUserName("myelifefly");
user2.setUserPassword("12345678");
user2.setUserFlag("超级");
iUserDAOImpl.updateUser(user2);
System.out.println(iUserDAOImpl.queryUserById(101));
//6.测试List<User> queryUserByName(String name)
System.out.println("6.测试List<User> queryUserByName(String name)");
for(User user3:iUserDAOImpl.queryUserByName("e"))
{
System.out.println(user3);
}
//7.测试addUserBySequence(User user)
System.out.println("/n7.测试addUserBySequence(User user)");
User user7 = new User();
user7.setUserId(100);
user7.setUserName("good");
user7.setUserPassword("123456");
user7.setUserFlag("test");
iUserDAOImpl.addUserBySequence(user7);
for(User user8:iUserDAOImpl.queryAllUser())
{
System.out.println(user8);
}
}
}
SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<properties resource="com/elifefly/SqlMap.properties" />
<!-- Configure a built-in transaction manager. If you're using an
app server, you probably want to use its transaction manager
and a managed datasource -->
<transactionManager type="JDBC" >
<dataSource type="SIMPLE">
<property value="${driver}" name="JDBC.Driver" />
<property value="${url}" name="JDBC.ConnectionURL" />
<property value="${username}" name="JDBC.Username" />
<property value="${password}" name="JDBC.Password" />
</dataSource>
</transactionManager>
<sqlMap resource="com/elifefly/User.xml"/>
<!-- List the SQL Map XML files. They can be loaded from the
classpath, as they are here (com.domain.data...) -->
<!-- List more here...
<sqlMap resource="com/mydomain/data/Order.xml"/>
<sqlMap resource="com/mydomain/data/Documents.xml"/>
-->
</sqlMapConfig>
SqlMap.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/college
username=root
password=123456
User.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap>
<typeAlias alias="User" type="com.elifefly.User" />
<!-- 查找所有用户 -->
<select id="selectAllUser" resultClass="User" >
select * from user;
</select>
<!-- 通过id查找用户 -->
<!-- parameterClass表示参数类型 -->
<select id="selectUserById" parameterClass="int" resultClass="User">
select * from user
where userId = #userId#
</select>
<!-- 添加用户 -->
<insert id="insertUser" parameterClass="User">
insert into user(userId,userName,userPassword,userFlag)
values(#userId#,#userName#,#userPassword#,#userFlag#);
<!-- 注意这里的#userId#对应User.java中的get和set方法属性的,要与其对应,修改的时候要对应 -->
</insert>
<!-- 删除用户 -->
<delete id="deleteUserById" parameterClass="int">
delete from user
where userId = #userId#
<!-- 特别注意:这个delete中的 #userId#可以改为任意的其他如 #Id#等,而在其他如select等语句不可行 -->
</delete>
<!-- 修改用户 -->
<update id="updateUserById" parameterClass="User">
update user
set userName = #userName#,
userPassword = #userPassword#,
userFlag = #userFlag#
where userId = #userId#
</update>
<!-- 模糊查询,通过用户名查找用户 -->
<select id="selectUserByName" parameterClass = "String" resultClass = "User">
select userId,userName,userPassword,userFlag
from user
where userName like '%$userName$%'
<!-- 非常注意:这个'%$userName$%'中的$符号和#的不同使用之处,$表示会用变量的只替换掉,用#是不行的,#是占位符 -->
</select>
<!-- 添加用户,获取自动增长的序列号,处理添加相同的userId情况 -->
<insert id="insertUserBySequence" parameterClass = "User" >
<selectKey resultClass = "int" keyProperty="userId" >
SELECT @@IDENTITY as userId
</selectKey>
insert into user(userId,userName,userPassword,userFlag)
values(#userId#,#userName#,#userPassword#,#userFlag#);
</insert>
</sqlMap>
User.java
package com.elifefly;
public class User
{
//注意必须保证有一个无参数方法,否则出错。
//因为反射的时候调用的是无参数的方法
private int userId = 0;
private String userName = null;
private String userPassword = null;
private String userFlag = null;
public int getUserId()
{
return userId;
}
public void setUserId(int userId)
{
this.userId = userId;
}
public String getUserName()
{
return userName;
}
public void setUserName(String userName)
{
this.userName = userName;
}
public String getUserPassword()
{
return userPassword;
}
public void setUserPassword(String userPassword)
{
this.userPassword = userPassword;
}
public String getUserFlag()
{
return userFlag;
}
public void setUserFlag(String userFlag)
{
this.userFlag = userFlag;
}
@Override
public String toString()
{
//重载toString方法,方便调用
String content = "userId=" + userId + "/tuserName=" + userName + "/tuserPassword=" +userPassword +"/tuserFlag=" +userFlag;
return content;
}
}
IUserDAO.java
package com.elifefly;
import java.util.List;
public interface IUserDAO
{
//增删改查
public void addUser(User user);
public void addUserBySequence(User user);
public void deleteUserById(int id);
public void updateUser(User user);
public List<User> queryAllUser();
public List<User> queryUserByName(String name);
public User queryUserById(int id);
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/elifefly/archive/2008/09/16/2936421.aspx
- 根据传智播客ibatis视频教程编写的入门例子
- 根据传智播客ibatis视频教程编写的入门例子
- 根据传智播客ibatis视频教程编写的入门例子
- 根据传智播客ibatis视频教程编写的入门例子
- ibatis的入门例子
- 最简单的iBatis入门例子
- 一个简单的iBatis入门例子
- 一个简单的iBatis入门例子
- 一个简单的iBatis入门例子
- 最简单的 iBatis 入门例子
- 一个简单的iBatis入门例子
- 根据dtd编写xml的小例子
- iBatis入门例子[网摘]
- iBatis入门例子
- ibatis入门级例子
- iBatis入门例子
- IBATIS入门小例子
- ibatis入门例子
- 如何在最快的时间内获得三年的工作经验
- 数据库优化----如何让你的SQL运行得更快
- 受益终生的十大经典管理学定律
- Montavista
- UTF-8编码规则
- 根据传智播客ibatis视频教程编写的入门例子
- c#的一些技巧
- 如何取得桌面,开始菜单等特殊位置路径?
- 显式加载DLL模块
- “太空人”的软件梦
- 哈哈哈都不知道改写什么
- sed 命令
- 认识PowerDesigner
- cpio 解压 oracle