mybatis实验(一)——对数据库进行简单的增、删、改、查
- 新建动态web工程,在src下创建Configuration.xml
- 复制mybatis框架所需的架包,到WEB-INF\lib目录下
-
配置Configuration.xml,设置mybatis的数据源的基础配置。初始配置代码如下:
<?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> <typeAliases> <typeAlias /> </typeAliases> <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://127.0.0.1:3306/mybatis?useUnicode=true&characterEncoding=utf-8" /> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <mappers> </mappers> </configuration>
4.在src目录下创建“zz.mapping”包,该包用于保存javabean类的映射文件,在该保中创建“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="">
</mapper>
5.创建数据库(mybatis),并创建user数据库表,并添加几条数据。该表结构如下:
6.在src目录下创建“zz.domian”包,该包用于保存user数据库的表的实体。在该包中创建User类,该类的属性对应user数据库表的字段。代码如下:
7. package swu.zz.domian;
8.
9. public class User {
10. private int id;
11. private String userName;
12. private int userAge;
13. private String userAddress;
14.
15. public int getId() {
16. return id;
17. }
18. public void setId(int id) {
19. this.id = id;
20. }
21. public String getUserName() {
22. return userName;
23. }
24. public void setUserName(String userName) {
25. this.userName = userName;
26. }
27. public int getUserAge() {
28. return userAge;
29. }
30. public void setUserAge(int userAge) {
31. this.userAge = userAge;
32. }
33. public String getUserAddress() {
34. return userAddress;
35. }
36. public void setUserAddress(String userAddress) {
37. this.userAddress = userAddress;
38. }
39. @Override
40. public String toString() {
41. return "User [id=" + id + ", userName=" + userName + ", userAge="
42. + userAge + ", userAddress=" + userAddress + "]";
43. }
44. public User() {
45. super();
46. }
47.
48.
49.
50. }
7.在userMapping中定义4个方法,分别对应数据的增删改查。其代码如下:
<?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="swu.zz.mapping.userMapping">
<!--获取数据-->
<select id="getAllUser" resultType="swu.zz.domian.User">
select * from user;
</select>
<!--增加数据-->
<insert id="addUser" parameterType="swu.zz.domian.User">
insert into user(userName,userAge,userAddress) values(#{userName},#{userAge},#{userAddress});
</insert>
<!--删除数据-->
<delete id="deleUser">
delete from user where id=#{id};
</delete>
<!--修改数据-->
<update id="updateUser" parameterType="swu.zz.domian.User" >
Update user
SET
username = #{userName},
userage = #{userAge},
useraddress = #{userAddress}
WHERE id = #{id}
</update>
<!--按id查询-->
<select id="getUser" resultType="swu.zz.domian.User" parameterType="int">
select * from user where id=#{id};
</select>
</mapper>
8.在Configuration.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>
<!--定义别名-->
<typeAliases>
<typeAlias alias="User" type="swu.zz.domian.User" />
</typeAliases>
<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://127.0.0.1:3306/mybatis?useUnicode=true&characterEncoding=utf-8" />
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!--注册映射文件-->
<mappers>
<mapper resource="swu/zz/mapping/userMapping.xml"/>
</mappers>
</configuration>
9.在src下创建“zz.test”包,在包内添加“Test”类,用来测试、运行xml文件,代码如下:
package swu.zz.test;
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;
import swu.zz.domian.User;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
String rs = "Configuration.xml";
//加载配置文件
InputStream is = Test.class.getClassLoader().getResourceAsStream(rs);
//构建mybatis的工厂
SqlSessionFactory sessionfactory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = sessionfactory.openSession();
/*输出数据库中的数据*/
String str1 = "swu.zz.mapping.userMapping.getAllUser";
List<User> myuser=session.selectList(str1);
for(User user:myuser){
System.out.println(user);
}
/*向数据库增加数据*/
String str3 = "swu.zz.mapping.userMapping.addUser";
User user3 =new User();
user3.setUserName("wang");
int s = session.insert(str3, user3);
session.commit()
/*删除数据库中的数据*/
String str4 = "swu.zz.mapping.userMapping.deleUser";
int count = session.delete(str4, 2);
session.commit();
/*修改数据*/
String str5 = "swu.zz.mapping.userMapping.updateUser";
User user5 = new User();
user5.setId(5);
user5.setUserName("kk");
user5.setUserAge(23);
user5.setUserAddress("北京");
int c = session.update(str5, user5);
session.commit();
/*按id号来查找数据*/
String str2 = "swu.zz.mapping.userMapping.getUser";
User user1=session.selectOne(str2, 1);
System.out.println(user1);
}
}