一、MyBaits 程序
功能:操作数据库对象
第一种实现方式:xml配置
1)POJO实体类
public class User{
private name;
}
2)配置xml文件映射
<mapper namespace="POJO.user">
<select id = "findById" parameterType = "int" resultType = "user">
SELECT * from t_user where id = #{id}
</select>
<update id = "update" parameterType = "user">
UPDATE t_user set uname=#{uname} where id =#{id}
</update>
<delete id ="delete" parameterType="user">
delete from t_user where id =#{id}
</delete>
<insert id ="insert" parameterType ="user">
insert into t_user(uid,uname) values (#{uid},#{uname})
</insert>
</mapper>
3)编写测试类
public class Test{
public static void main(String []){
//1、先读取配置文件
InputStream is = Resouces.getResourceAsStream("mybaits-config.xml")
//2、创建sqlsession工厂
SqlSessionFactory ssf = new SqlSessionFactoryBuider.build(is)
//3、开启会话
SqlSession ss = ssf.opensession();
//4、执行操作
User user = ss.selectOne("findByID",1)
//5、关闭会话
ss.close()
}
}
第二种实现方式:接口注解
1)POJO实体类
public class User{
private name;
}
2)写一个操作这个实体类的接口
public interface UserMapper{
@Select("select * from t_user where id=#{id}")
Worker selectById(int id)
}
3)测试类调用接口
public void FindTest(){
//1、先读取配置文件
InputStream is = Resouces.getResourceAsStream("mybaits-config.xml")
//2、创建sqlsession工厂
SqlSessionFactory ssf = new SqlSessionFactoryBuider.build(is)
//3、开启会话
SqlSession ss = ssf.opensession();
---这些都一样,下面开始不一样,关键在于实例化出来一个接口对象---
//4、关键:先实例化出来一个接口
UserMapper ump = ss.getMapper(UserMapper.class)
//5、调用接口下的指定方法
Worker worker = ump.selectById(1)
//6、关闭会话
ss.close()
}
二、Spring_IOC
功能:帮程序员实例化对象
方法一:xml文档配置
1)先自己随便写一个实体类
public class Hello(){
private String name;
public void show(){
print("hello");
}
}
2)xml文件中进行配置实例
<bean id = "hello" class = "com.Hello">
//开始赋值
<property name = "name" value="zhangsan"></property>
</bean>
3)测试类中测试生成
public class Test{
main(){
//1、初始化spring容器,读取xml配置
ApplicationContext ac = new ClassPathXmlApplicationContext("application.xml")
//2、从容器中取出对象
Hello hello = (Hello)ac.getBean("hello")//利用bean的id取出
//3、测试对象的功能
hello.show()
}
}
方法二:利用对类注解
其中:
@Component 是对常规实体类的注解
@Service 是对服务层类的类的注解
@Controller 是对控制层的类的注解
@Repository 是对DAO层的类的注解
1)创建实体类
@Component("user") 这个类实例化的对象名字叫user
public class User{
@Value("xsx")
private String name
}
2)创建各个层的接口及类
-
DAO层:需要调用实体对象
public interface UserDao{ public void save(); } @Repository("userDAO") public class UserDaoImpl implements UserDao{ public void save(){ //1、加载spring容器 并读取对应配置 ApplicationContext ac =new ClassPathXmlApplicationContext("appliconContext.xml") //2、从容器中取出对象 User user = ac.getBean("user"); } }
-
Service层:调用DAO对象
public interface Service{
public void sace();
}
@Service("userService")
public class ServiceImpl implements Service(){
//想要调用那个DAO对象
@Resource(name = "userDao")
public void save(){
}
}
- Controller层:想要调用service层
public interface Controller{
public void save();
}
@Controller("controller")
public class ControllerImpl implements Controller{
@Resource(name="service") or @Autowired
private Service service;
public void save(){
}
}
三、Spring_AOP
核心:在切面中配置切入点和增强的关系
基于注解的方法实现
1)首先是你要增强的类 也就是你的切入点
public class UserDaoImpl implements UserDao{
public void insert() {
System.out.println("添加用户信息"); }
public void delete() {
System.out.println("删除用户信息"); }
public void update() {
System.out.println("更新用户信息"); }
public void select() {
System.out.println("查询用户信息"); }
}
2)接下来是你的增强方法所在类
@Aspect
public class AnnoAdvice{
//1、先声明你的切入点在那里
@PointCut("execution(* com.itheima.demo03.UserDaoImp.*(..))")
public void pointcut(){
}
//2、事务开始前想要执行的
@Before("pointcut()")
public void before(JointPoint jointpoint){
print("before")
}
}
常用的加入位置
@Before
@After:程序结束一定会执行
@AfterReturing
@AfterThrowing
四、SpringMVC
1)一个控制类:最简单的不带参数的
@Controller
public class FirstController{
@RequestMapping("/firstController")
public String Hello(){
print("想要访问hello页面")
return "suceess";
}
}
2)如果传来的数据带有参数
/*
默认参数类型
HttpServeletRequest
Model
*/
@Controller
public class FirstController{
@RequestMapping("/firstController")
public String Hello(HttpServeletRequest re,Model model){
print(re.getParameter("userid"))
model.addAttribute("msg","nihao") //到时候在前端jsp就可以取出
return "suceess";
}
}
veletRequest
Model
*/
@Controller
public class FirstController{
@RequestMapping(“/firstController”)
public String Hello(HttpServeletRequest re,Model model){
print(re.getParameter(“userid”))
model.addAttribute(“msg”,“nihao”) //到时候在前端jsp就可以取出
return “suceess”;
}
}