Maven+MyBatis 基础程序创建<2>
来源:互联网 发布:西南科技大学软件下载 编辑:程序博客网 时间:2024/06/06 03:52
这里完成更多的基础数据库操作
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"><mapper namespace="User"><!-- 这里的namespace可以随便定义,就是标识当前文件的存在 --> <resultMap type = "entity.User" id = "map1"> <!-- type就是当前类~,id标识当前resultMap --> <result column = "name" property = "name" /> <result column = "age" property = "age" /> <!-- column是数据库中的列名,property是当前result的属性名 --> </resultMap> <!-- 以上是定义resultMap,用来查询多条数据 --> <!-- 如果数据库中的列名不能和Java定义的类的属性名一一对应的话,可以用resultMap来完成映射 --> <!-- 可以用多个resultMap完成多个查询(或者别的功能?) --> <insert id = "insertUser" parameterType = "entity.User"> <!-- <insert>标签作用:插入数据;id标识当前标签;parameterType是接受参数的参数类型(User类必须写全路径名) --> insert into user (name,age,sex,did) values (#{name},#{age},#{sex},#{did}) <!-- #{name}对应User类的name属性(必须一一对应不然系统不认) --> </insert> <delete id = "deleteUser" parameterType = "int"> delete from user where id = #{id} </delete> <update id = "updateUser" parameterType = "map"> update user set name = #{name} where id = #{id} </update> <select id = "selectCount" resultType = "int"> select count(*) from user </select> <select id = "selectCountBySex" resultType = "int" parameterType = "int"> select count(*) from user where sex = #{sex} </select> <select id = "selectCountByALot" resultType = "int" parameterType = "map"> select count(*) from user where sex = #{sex} and age > #{age} </select> <select id = "selectById" parameterType = "int" resultType = "entity.User"> select * from user where id = #{id} <!-- 数据库的表的列名如果跟对应的Java类的属性名一一对应的话,查询出的记录会自动映射到Java类中生成对象 --> <!-- 如果不能保证一一对应则不能这样写 --> </select> <select id = "selectAll" resultType = "entity.User"> select * from user </select> <select id = "selectName" resultType = "String"> select name from user </select> <select id = "selectNameAndAge" resultMap = "map1"> select name,age from user </select> <!-- resultMap指向map1对应的resultMap --> <!-- 尽管只查了两列,但是还是会返回对象(一条记录就是一个对象),只是没有查询的值会为空 --></mapper>
2 Main.java代码
package main;import java.io.IOException;import java.io.InputStream;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;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 entity.User;public class Main { public static void main(String[] args) { String path = "Config.xml"; //这里的配置文件不需要写路径 //(但是如果没有把配置文件放在resources包中或者在里面创建了文件夹的话,就需要写路径了) try { InputStream stream = Resources.getResourceAsStream(path); SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); SqlSessionFactory fac = builder.build(stream); SqlSession session = fac.openSession(); //以上是固定格式 //1.插入操作 User user = new User(); user.setName("韩耀"); user.setAge(18); user.setSex(0); user.setDid(1); //创建User对象 session.insert("User.insertUser", user); //执行插入操作 //参数一:namespace.insertid //参数二:被操作的参数 session.delete("User.deleteUser", 13); //2.更新操作 Map map = new HashMap(); map.put("name", "聂风"); map.put("id", 20); session.update("User.updateUser", map); //3.查询操作(查询总共有多少条记录) int result = session.selectOne("User.selectCount"); System.out.println(result); //4.查询操作(查询性别为男的user) int result = session.selectOne("User.selectCountBySex",1); System.out.println(result); //5.查询操作(查询性别为女年龄为19的user) Map map = new HashMap(); map.put("sex", 0); map.put("age",19); int result = session.selectOne("User.selectCountByALot",map); System.out.println(result); //6.查询操作(查询id为1的user,控制台输出他的姓名) User user = session.selectOne("User.selectById",1); System.out.println(user.getName()); //7.查询操作(查询全部记录) List<User> list = session.selectList("User.selectAll"); for(User user : list) System.out.println(user.getName()); //8.查询操作(查询所有user的姓名) List<String> list = session.selectList("User.selectName"); for(String name : list) System.out.println(name); //9.查询操作(查询全部user的姓名和年龄) List<User> list = session.selectList("User.selectNameAndAge"); for(User user:list) { System.out.println(user.getName()); //可以查询到所以可以打印出来 System.out.println(user.getSex()); //没有查询sex所以值都为空 } session.commit(); //提交(如果没有这句话则之前的数据库操作不会执行,但是查询的时候不需要commit()) session.close(); //关闭session } catch (IOException e) { e.printStackTrace(); } }}
阅读全文
0 0
- Maven+MyBatis 基础程序创建<2>
- Maven+MyBatis 基础程序创建<1>
- Maven+MyBatis 基础程序创建<3>
- 【Mybatis学习】Eclipse创建Maven-Mybatis项目
- 基础教学——如何用maven工具创建一个springmvc+mybatis的项目
- Mybatis框架开发-Maven创建web项目
- idea创建maven+springmvc+mybatis+jetty项目
- 使用IDEA创建maven Mybatis-SpringMvc项目
- 【SSM】Maven创建web项目:SpringMVC+Mybatis
- Spring+MyBatis+JUnit+Maven创建项目实例
- 使用Maven创建Springmvc+Mybatis+Velocity项目
- maven 创建基础web 应用
- maven搭建mybatis--入门程序--001
- 创建MyBatis基础框架和测试
- IDEA15创建maven web项目基础
- Maven(一)如何创建一个web程序
- maven创建多模块项目+springMVC+mybatis
- Eclipse创建WEB工程Maven+Spring+SpringMVC+MyBatis示例
- http get和post请求的区别?
- CNN 模型压缩与加速算法综述
- OpenStack-M版(Mitaka)搭建基于(Centos7.2)+++二、Openstack环境准备篇下
- ECLIPSE中服务器发布时发现项目名后括号与项目名不一致的问题
- Linux下进程通信预习(一)
- Maven+MyBatis 基础程序创建<2>
- 区块链学习-概念
- Liunx 安装文件一般原则
- 总结
- jquery canvas 实现时序图|接续图|顺序图
- 【平衡树维护序列】BZOJ3506(Cqoi2014)[排序机械臂]题解
- 两个二维数组进行合并成一个二维数组
- Spring Cloud Eureka源代码解析(2) EurekaServer 重要缓存解析
- linux共享目录挂载权限问题