思路:入口程序读spring的配置文件-配置文件注入给程序bean--程序拿到bean以操作对象的手法查出程序
入口程序HelloWorld.java
packageHelloWorld;importorg.springframework.context.ApplicationContext;importorg.springframework.context.support.ClassPathXmlApplicationContext;importHelloWorld.UserDao;importHelloWorld.User;public classHelloWorld {/***@paramargs*/
public static voidmain(String[] args) {
ApplicationContext ctx=new ClassPathXmlApplicationContext("classpath:ApplicationContext.xml");
UserDao userDao=(UserDao) ctx.getBean("userDao");
User user=newUser();
user.setId(1);
System.out.println(userDao.getUser(user).toString());
}
}
----------------------------------------------------------------------------------------------------------------
importHelloWorld.UserDao;//把bean变成对象操作
importHelloWorld.User;//把字段变成对象操作ApplicationContext ctx=new ClassPathXmlApplicationContext("classpath:ApplicationContext.xml");//读取spring的配置文件------1
UserDao userDao=(UserDao) ctx.getBean("userDao");//拿到配置文件的bean,并把它变成对象------2
User user=newUser();
user.setId(1);//设置对象的属性,即设置字段id为1
System.out.println(userDao.getUser(user).toString());//往userDao对象的getUser方法传值,值为user
----------------------------------------------------------------------------------------------------------------
1和2合并指向的就是ApplicationContext.xml这个文件,过去看看
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">
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/mybatis
root
root
----------------------------------------------------------------------------------------------------------------
配合了数据源,加载了一个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的?。。。
------------------------------------------------------------------------------------------------------------------------
红字是主线,顺着主线往下走,找conf.xml这个配置文件
select * from users where id=#{id}
终于要查询了。。。
补下UserDao、User
packageHelloWorld;importHelloWorld.User;public interfaceUserDao {publicUser getUser(User user);public voidaddUser(User user);public voidupdateUser(User user);public void deleteUser(intUserId);
}
packageHelloWorld;/***@authorgacl
* users表所对应的实体类*/
public classUser {//实体类的属性和表的字段名称一一对应
private intid;privateString name;private intage;public intgetId() {returnid;
}public void setId(intid) {this.id =id;
}publicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}public intgetAge() {returnage;
}public void setAge(intage) {this.age =age;
}
@OverridepublicString toString() {return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
结构图:
查看报错就是熟悉它的过程,能学到很多东西
效果:
至少知道程序走的哪了,在哪出的错,为什么会出错。。。