Maven+MyBatis 基础程序创建<2>
2017-11-28 19:07
381 查看
这里完成更多的基础数据库操作
1 User.xml代码
2 Main.java代码
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(); } } }
相关文章推荐
- Maven+MyBatis 基础程序创建<3>
- Maven+MyBatis 基础程序创建<1>
- 创建Maven web项目时 出现 web.xml is missing and <failOnMissingWebXml> is set to true错误 pox.xml编译错误
- 黑马程序员 Java基础<十>---> IO流<2>(File类,Properties,打印流,合并流)
- Java笔记1 Java编程基础<2>循环语句、函数(重载)、变量和数组的内存结构
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<正则表达式>(三十一)
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<DOM解析>(三十二)
- Mac技术预览之<2>为Mac平台创建软件产品
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<Hibernate_配置详解>(三十六)
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<tomcat>(二十五)
- Eclipse创建Maven项目时提示web.xml is missing and <failOnMissingWebXml> is set to true错误解决方案
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<servlet_文件下载>(二十七)
- spring+spring mvc + mybatis + maven 项目框架搭建笔记<一>
- 创建Maven项目时提示web.xml is missing and <failOnMissingWebXml> is set to true错误解决方案
- 程序员_Java基础之<十一>-IO流<2>File流
- 用STS创建Maven的Web项目<转>
- Eclipse+Maven创建webapp项目<一><二><三>
- 创建maven遇到web.xml is missing and <failOnMissingWebXml> is set to true错误
- Java基础知识<2>
- 黑马程序眼_<<基础加强-----代理>>