学习笔记2:Struts2 +Spring JDBC

前面的学习笔记1,我记录了Struts2搭建网站框架的小实例
我的文件目录
我导入的jar包
这次,我要在Struts2框架实例的基础上,记录用JDBC链接数据库的过程。这个过程其实最核心的就是dao接口和daoImpl类,这些是直接对数据库进行操作的。

UserDao.java

package org.kingtoon.dao;

import java.sql.Connection;

import org.kingtoon.bean.User;

public interface UserDao {
    public Connection getConn();
    public void AddUser(User user) ;
    public int CheckUser(String username);
    //public int GetId(String username);
}

接口文件Dao.java中只做函数声明,不需要写函数代码,有点类似于C++中的.h文件,函数体都写在DaoImpl.java文件中。
UserDaoImpl.java

package org.kingtoon.dao.impl;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import org.kingtoon.bean.User;
import org.kingtoon.dao.UserDao;

public class UserDaoImpl implements UserDao{
    public Connection getConn(){
        try{
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@60.30.69.57:1521:orcl","casp","5Ow7aVKO");
            //
            return conn;
        }
        catch(ClassNotFoundException e){
            e.printStackTrace();
        }
        catch(SQLException e){
            //;
            e.printStackTrace();
        }
        return null;
    }
    public void AddUser(User user){
        Connection conn=getConn();
        String sql="insert into SJDZ_ML_INFO values(?,?,?)";
        try{ 
            PreparedStatement pst=conn.prepareStatement(sql);
            pst.setInt(1,user.getid());
            pst.setString(2,user.getUserName());
            pst.setInt(3, user.getpid());
            pst.executeUpdate();
            System.out.println("快去看看数据库有没有增加行!!");
        }catch(SQLException e){
            e.printStackTrace();
        }
        System.out.println("okokok");
    }
    public int CheckUser(String username) {
        System.out.println("hfsdkhlasdkhsda");
        try {
            String sql="select * from SJDZ_ML_INFO where TITLE='"+username+"'";
            System.out.println(sql);
            Connection conn=getConn();//数据库连接在此执行
            PreparedStatement prst=conn.prepareStatement(sql);
            java.sql.ResultSet result=prst.executeQuery(sql);
            System.out.println("数据库连接成功了!!");
            if(result.next())
            {
                int count=result.getInt(1);
                System.out.println(count);
                conn.close();
                result.close();
                return count;
            }
            else
                return 0;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 1;
    }
}

既然还是使用Struts2,所以依然不能缺少Action.java类和web.xml,struts.xml等配置文件
LoginAction.java

package org.kingtoon.action; 

import org.kingtoon.bean.User;
import org.kingtoon.dao.UserDao;
import org.kingtoon.dao.impl.UserDaoImpl;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    User user;   
    UserDaoImpl LoginDao=new UserDaoImpl();
    public User getUser(){
        return user;
    }
    public void setUser(User user){
        this.user=user;
    }
    public String Login() throws Exception {
        int id=LoginDao.CheckUser(user.getUserName());
    //  System.out.println(LoginDao.CheckUser(user.getUserName()))
        if(id!=0)
        {
            if(id==user.getid())
                    return "success";
            else
                return "input";
        }

        else return "fail";
    }   
}

RegisterAction.java

package org.kingtoon.action;   
import org.kingtoon.bean.User;
import org.kingtoon.dao.impl.UserDaoImpl;

import com.opensymphony.xwork2.ActionSupport;
public class RegisterAction extends ActionSupport {       
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private User user;   
    UserDaoImpl RegistDao=new UserDaoImpl();
    public User getUser(){
        return user;
    }
    public void setUser(User user){
        this.user=user;
    }
    public String Regist() throws Exception { 
        int id=RegistDao.CheckUser(user.getUserName());

        if(id!=0)
        return "findit";   
        else
        {
            RegistDao.AddUser(user);
            return "success";
        }

    }      
}  

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
     "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />

    <constant name="struts.multipart.maxSize" value="10000000000" />
    <constant name="struts.multipart.saveDir" value="/tmp" />
    <!-- 登陆 -->
    <include file="struts-example.xml"/>
    <include file="struts-example2.xml"/>
</struts>

struts-example.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
     "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>

    <package name="example" namespace="/example" extends="struts-default">
         <action name="register" class="org.kingtoon.action.RegisterAction" method="Regist">   
            <result name="success">/Congratulation.jsp</result>   
            <result name="findit">/Login.jsp</result>
            <!-- <result name="input">/Register.jsp</result> -->
         </action>  
    </package>

</struts>

struts-example2.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
     "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>

    <package name="example2" namespace="/example2" extends="struts-default">
         <action name="login" class="org.kingtoon.action.LoginAction" method="Login">   
            <result name="success">/Welcome.jsp</result>  
            <result name="fail">/Register.jsp</result> 
            <result name="input">/Login.jsp</result>   
         </action>  
    </package>
</struts>

还有另外一个User类
User.java

package org.kingtoon.bean;   
public class User {
    private Integer id;
    private String userName;   
    private Integer pid;
    public int getid() {   
        return id;   
    }   
    public void setid(int id) {   
        this.id= id;   
    }  

    public String getUserName() {   
        return userName;   
    }   
    public void setUserName(String userName) {   
        this.userName=userName;
    }
    public int getpid() {   
        return pid;   
    }   
    public void setpid(int pid) {   
        this.pid= pid;   
    }  
}

但是我还发现了我这两个笔记中一个错误,就是结构中我还少设计了一层,那就是Service.java。我查到的比较标准的,应该是Dao.java,DaoImpl.java只需要对数据库进行存取查找删除等操作,Action.java,struts.xml对应前台网页传来的数据进行处理和操作,而Service.java中设定的函数要做更加高层次的操作。不过由于我们做的这个网站比较小,作用也不是很明显,此处不做过多演示了。


本文为原创文章,请勿转载。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值