java是后端啊,不能直接运行的
数据库在前端与后端中就是一个中转站。
具体的操作流程
- html写前段页面,通过表单将数据(账号和密码)交给servlect
- Servelt通过三层来操作数据库:
实现类继承dao接口,再通过工具类层具体操作数据库
后端的三大层次
- until 工具类 :用来链接和操作数据库,包括:增删改,以及查询 怎删改本质上就是修改数据库,用一个方法执行,而查询,需要用其他方法
,返回一个resSet的可操作对象 - dao层:接口层,对不同的数据库,以及对象,要用到不同的
- implement实现类,具体验证数据库,implement用来验证用户的输入,与数据库上的信息做对比,比如登录,jsp转发到servlect,servlect在创建impl的对象,将表单中的数据传进来,然后,iple
工具类的写法,需要三个方法
由于JDBC 其实数据的增删改都属于修改操作,所以只需要两个方法
- 初始化init(),执行连接数据库的操作
- 一个修改
- 一个查询
初始化
public static void init() throws SQLException {
try {
Class.forName("com.mysql.jdbc.Driver");
conn= DriverManager.getConnection(dz,user,pass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println("数据库连接失败");
}
stat=conn.createStatement();
System.out.println("数据库连接成功");
}
查询
public static ResultSet selectSQL(String sql){
ResultSet rs= null;
try {
rs = stat.executeQuery(sql);
} catch (SQLException e) {
System.out.println("查询执行失败");
}
return rs;
}
修改:
public static int AddDel(String sql){
int i=0;
try {
boolean a= stat.execute(sql);
// stat.execute("INSERT INTO userdata (user,pass) VALUES ('lisi','456')");
if(a==false){
i++;
}
} catch (SQLException e) {
System.out.println("增删改出错");
}
return i;
}
实现类去使用这个工具类 时 直接new然后调用方法,输入语句即可
别忘了初始化
SQLutil sql= new SQLutil();
sql.init();
ResultSet rs=sql.selectSQL("select * from userdata where user='"+name+"' and pass='"+pass+"';");
实现类写完之后,再通过Servelt来调用,doget调用
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
SQLimpl sqLimpl=new SQLimpl();
String re=sqLimpl.yanz(User,Pass);
}