思路:入口程序读spring的配置文件-配置文件注入给程序bean--程序拿到bean以操作对象的手法查出程序

入口程序HelloWorld.java

package HelloWorld;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import HelloWorld.UserDao;
import HelloWorld.User;public class HelloWorld {/*** @param args*/public static void main(String[] args) {ApplicationContext ctx=new ClassPathXmlApplicationContext("classpath:ApplicationContext.xml");UserDao userDao=(UserDao) ctx.getBean("userDao");User user=new User();user.setId(1);System.out.println(userDao.getUser(user).toString());}}

----------------------------------------------------------------------------------------------------------------import HelloWorld.UserDao;//把bean变成对象操作
import HelloWorld.User;//把字段变成对象操作

ApplicationContext ctx=new ClassPathXmlApplicationContext("classpath:ApplicationContext.xml");//读取spring的配置文件------1

UserDao userDao=(UserDao) ctx.getBean("userDao");//拿到配置文件的bean,并把它变成对象------2
User user=new User();
user.setId(1);//设置对象的属性,即设置字段id为1
System.out.println(userDao.getUser(user).toString());//往userDao对象的getUser方法传值,值为user----------------------------------------------------------------------------------------------------------------

1和2合并指向的就是ApplicationContext.xml这个文件,过去看看
<?xml version="1.0" encoding="UTF-8"?>
<beans  xmlns="http://www.springframework.org/schema/beans"  xmlns:tx="http://www.springframework.org/schema/tx"  xmlns:p="http://www.springframework.org/schema/p"  xmlns:aop="http://www.springframework.org/schema/aop"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   http://www.springframework.org/schema/tx   http://www.springframework.org/schema/tx/spring-tx-3.0.xsd   http://www.springframework.org/schema/aop    http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<!-- 配置数据源-->  <bean id="jdbcDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  <property name="driverClassName">  <value>com.mysql.jdbc.Driver</value>  </property>  <property name="url">  <value>jdbc:mysql://localhost:3306/mybatis</value>  <!--springmybaitis是我的数据库  --></property>  <property name="username">  <value>root</value>  </property>  <property name="password">  <value>root</value>  </property>  </bean>  <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  <property name="dataSource" ref="jdbcDataSource" />  <property name="configLocation" value="classpath:conf.xml"></property>  </bean>  <bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean">  <property name="mapperInterface" value="HelloWorld.UserDao"></property>  <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>  </bean>  </beans>

----------------------------------------------------------------------------------------------------------------

配合了数据源,加载了一个conf.xml,userDao这个bean在最下面

org.mybatis.spring.mapper.MapperFactoryBean好像依赖于一个jar,不然老是报

ApplicationContext ctx=new ClassPathXmlApplicationContext("classpath:ApplicationContext.xml");

其实不是程序的错,而是配置文件的错,主要是它报的错没办法指向配置文件,但是根据具体的报错信息(一行一行的看的。。。)加白度,大概了解到是配置文件里有错了,且是少了一个jar包这样的错

org.springframework.transaction-3.1.0.RC1.jar这个包

我把3.2的包下载完了,以为不会缺jar包了,可能是抄的别人代码的缘故,就是缺org.springframework.transaction-3.1.0.RC1.jar这个包,3.1的?。。。

------------------------------------------------------------------------------------------------------------------------

<property name="configLocation" value="classpath:conf.xml"></property>

红字是主线,顺着主线往下走,找conf.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><mappers><!-- 注册userMapper.xml文件, userMapper.xml位于me.gacl.mapping这个包下,所以resource写成me/gacl/mapping/userMapper.xml--><mapper resource="HelloWorld/UserDao.xml"/></mappers></configuration>

<mapper resource="HelloWorld/UserDao.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,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的
例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除后缀)-->
<mapper namespace="HelloWorld.UserDao"><!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型resultType="me.gacl.domain.User"就表示将查询结果封装成一个User类的对象返回User类就是users表所对应的实体类--><!-- 根据id查询得到一个user对象--><select id="getUser" parameterType="int" resultType="HelloWorld.User">select * from users where id=#{id}</select>
</mapper>

终于要查询了。。。

补下UserDao、User

package HelloWorld;import HelloWorld.User;public interface UserDao {public User getUser(User user);public void addUser(User user);public void updateUser(User user);public void deleteUser(int UserId);
}

package HelloWorld;/*** @author gacl* users表所对应的实体类*/
public class User {//实体类的属性和表的字段名称一一对应private int id;private String name;private int age;public int getId() {return id;}public void setId(int 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;}@Overridepublic String toString() {return "User [id=" + id + ", name=" + name + ", age=" + age + "]";}
}

结构图:



查看报错就是熟悉它的过程,能学到很多东西

效果:

至少知道程序走的哪了,在哪出的错,为什么会出错。。。

我的第九个java程序--spring和mybatis整合(java project)相关推荐

  1. 【Java】Spring和Mybatis整合

    前言 在很多项目中,Mybatis都是和Spring配合起来一起发挥作用的,利用Spring的注入.基于接口编程等优势,将Mybatis的一些琐事交给Spring管理,而Mybatis可以更加注重在自 ...

  2. java程序员工资有多少?java程序员现状如何?

    现在java程序员的日子好过吗?他们的工资一般都是多少呢?现状如何呢?java程序员烂大街了吗?带着这些问题,让我们一起通过下面的文章来了解一下吧. 1.java程序的现状 一句话,加班,工资高. 这 ...

  3. java元婴期(26)----java进阶(mybatis(5)---spring和mybatis整合(重点)逆向工程(会用))

    spring和mybatis整合 1.整合思路 需要spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用SqlSessionFactor ...

  4. 纯国产环境JAVA程序(Springboot + Mybatis + 达梦数据库)搭建

    目录 JAVA程序搭建 前言 达梦数据库安装(WINDOWS) SpringBoot项目搭建 整合达梦数据库 源码 总结 JAVA程序搭建 前言 写在前面: 文章满满干货,每一步都是自己从零开始操作并 ...

  5. mongodb java spring_[Java教程]Spring 与 mongoDB 整合

    [Java教程]Spring 与 mongoDB 整合 0 2017-02-07 00:00:39 首先需要引入jar包 1 2 org.mongodb 3 mongodb-driver 4 3.3. ...

  6. 树莓派Java程序运行_树莓派上Java程序作为linux服务并开机自动启动

    http://www.iigrowing.cn/shu_mei_pai_shang_java_cheng_xu_zuo_wei_linux_fu_wu_bing_kai_ji_zi_dong_qi_d ...

  7. Java+SSM(Spring+SpringMVC+Mybatis)个性化购物商城推荐系统 电子商务推荐系统 基于用户、项目、聚类、混合的协同过滤推荐算法WebShopRSMEx 源代码下载

    Java+SSM(Spring+SpringMVC+Mybatis)个性化购物商城推荐系统 电子商务推荐系统 基于用户.项目.聚类.混合的协同过滤推荐算法WebShopRSMEx 源代码下载 一.项目 ...

  8. Java程序应用实例:“你好 Java”

    编写Java源程序 Java 源程序可以使用任何一个文本编辑器来编写,这里以 Windows 下的记事本为例. 例 1 (1) 新建一个空白记事本,然后如实地输入下列内容. /* *第一个java程序 ...

  9. 使用Java+SSM(Spring+SpringMVC+Mybatis)如何开发个性化音乐推荐系统 在线音乐推荐网站 基于用户、项目的协同过滤推荐算法实现MusicRecommendSystemWeb

    使用Java+SSM(Spring+SpringMVC+Mybatis)如何开发个性化音乐推荐系统 在线音乐推荐网站 基于用户.项目的协同过滤推荐算法实现MusicRecommendSystemWeb ...

最新文章

  1. 郎凤娥谈定西实施煤粉锅炉改造项目
  2. Android SlideAndDragListView,一个可排序可滑动item的ListView
  3. Seeduino XIAO开发板安装Arduino软件包以及USB串口驱动
  4. 如何修改vs2008代码字体
  5. Android学习笔记(八)XML文档的解析
  6. 科普 | 以链接为中心的系统:Link-based Systems
  7. 服务器不在工作_DHCP的工作原理
  8. 一文看懂JUC之AQS机制
  9. LeetCode 51. N-Queens
  10. centos 卸载 jdk
  11. php+ddos原理,PHP DDos的几个防御方法详解_PHP教程
  12. 2017大一计算机教程,2017年计算机等考一级章节考点:WPS2000新手入门教程
  13. c语言swtitch输入字母输出,郝斌 C语言笔记
  14. 【网络营销】CPA、CPS、CPM、CPT、CPC 是什么
  15. react中数组添加值,超时设置
  16. uniapp+nvue实现仿微信App聊天应用 —— 成功实现好友聊天+语音视频通话功能
  17. PHPExcel中文开发手册翻译版(2)
  18. 串行口中断服务函数的触发条件-------TI/RI 触发
  19. P5055 【模板】可持久化文艺平衡树 可持久化fhqtreap
  20. 西门子博图指令(计数器操作)

热门文章

  1. c语言中缀表达式求值_数据结构-第三章:栈和队列(栈的应用、括号匹配、表达式转换)
  2. Javascript归并排序
  3. java面向对象三个关键字,Java 面向对象(三)static 关键字
  4. 在sqlserver中写脚本用到的关键字理解
  5. DataFrame列转json以及json转DataFrame列
  6. 光影之路 GPU架构发展史(3/4)
  7. 通过机房工作看软工之软工总结
  8. 牛津教授吐槽DeepMind心智神经网络,还推荐了这些多智能体学习论文
  9. JQuery使用deferreds串行多个ajax请求
  10. GetConsoleWindow was not declared in this scope