PS:这仅仅是简单的连接,并没有太多实际的功能
//工具类
package com.etc.manager;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* 这是一个资源工具类
* @author Administrator *
*/
public class DBUtil {
static
//static静态代码块启动程序就会运行静态代码块
//静态代码块加载数据库驱动
{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 获取数据库连接
* */
public static Connection getConnection()
{
Connection conn = null;
try {
//连接信息:数据库地址,用户名,密码
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/1219?characterEncoding=utf-8", "root", "123123");
//System.out.println("连接成功");
} catch (Exception e) {
System.out.println(e.getMessage());
}
return conn;
}
//关闭连接
/**
* 释放资源的方法,把传入的资源对象关闭释放。
* */
public static void closeAll(Connection conn,Statement st,ResultSet rs)
{
try {
if(conn!=null)
{
conn.close();
}
if(st!=null)
{
st.close();
}
if(rs!=null)
{
rs.close();
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
//验证登录类
package com.etc.manager;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
public class Account {
/**
* 根据用户名和密码访问数据库的admin表,来实现登录功能
* @param userName
* @param pwd
* @return
*/
public boolean userLogin(String userName,String password)
{
String sql ="select count(*) from admin where userName=? and password =?";
//调用DBUtil工具类的getConnection方法获取数据库连接
Connection conn = DBUtil.getConnection();
PreparedStatement ps =null;
ResultSet re =null;
int result = 0;
try {
//PreparedStatement对象预编译sql语句
ps = conn.prepareStatement(sql);
//给占位符赋值
ps.setString(1, userName);
ps.setString(2, password);
//接受结果集
re = ps.executeQuery();
if(re.next())//判断是否还有下一条数据,当知道只会查询出一条数据的时候,就用if语句
{
//获取查询结果的第一列,sql的查询项就是count(*)就是第一列
result = re.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
}
finally
{
//调用DBUtil工具类的closeAll方法关闭连接
DBUtil.closeAll(conn, ps,re);
}
//大于0则返回true
return result>0;
}
}
//学员管理类
package com.etc.manager;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
//学员管理类
/**
* 学员管理类
* */
public class StudentManager {
Scanner input = new Scanner(System.in);
// 增
/**
* 增加方法
* */
public void add() {
// 调用工具类getConnection方法取得连接对象
Connection conn = DBUtil.getConnection();
PreparedStatement st = null;
//String sql = "insert into student values(null,'李成江','男','13690236572','1993-6-8','中山市','liyunfei@126.com',1)";
String sql = "insert into student values(?,?,?,?,?,?,?,?)";
try {
//预编译sql语句
st = conn.prepareStatement(sql);
//给占位符赋值
st.setInt(1, 1);
st.setString(2, "吴小丽");
st.setString(3, "男");
st.setString(4, "13290945698");
st.setString(5, "1994-5-6");
st.setString(6, "广州越秀区");
st.setString(7, "wuxiaoli@126.com");
st.setInt(8, 2);
int row = st.executeUpdate();
if (row > 0)
System.out.println("添加学员信息成功");
else
System.out.println("添加学员信息失败");
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
DBUtil.closeAll(conn, st, null);
}
}
// 查询所有年级信息
/**查看所有年级信息*/
public void search() {
String sql = "select * from student";
Connection conn = DBUtil.getConnection();
Statement st = null; // 命令对象
ResultSet rs = null; // 结果集
try {
st = conn.createStatement();
// 查询指令调用的方法,可以获取返回的结果集 :ResultSet
rs = st.executeQuery(sql);
// 如何从结果集中取数据 ....重点 采用循环的方式一行行的取,调用next()方法
while (rs.next()) {
// 如何取得每一行数据里面的值,根据 列名、索引两种方式取
System.out.print(rs.getString(1) + "\t");
System.out.print(rs.getString(2) + "\t");
System.out.print(rs.getString(3) + "\t");
System.out.print(rs.getString(4) + "\t");
System.out.println(rs.getString(5) + "\t");
}
} catch (Exception e) {
// TODO: handle exception
} finally {
//调用DBUtil工具类的closeAll方法关闭连接
DBUtil.closeAll(conn, st, rs);
}
}
}
//主方法类
import java.util.Scanner;
import com.etc.manager.Account;
import com.etc.manager.StudentManager;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
StudentManager manager = new StudentManager();
Scanner input = new Scanner(System.in);
System.out.print("请输入用户名:");
String uname = input.nextLine();
System.out.print("请输入密码:");
String pwd = input.nextLine();
//验证登陆类
Account account = new Account();
//调用登录方法返回True表示登录成功。
if(account.userLogin(uname, pwd)){
//下面调用了StudentManager类下的add()方法和search()方法,一个是增加一行数据,一个是查询数据
manager.add();
manager.search();
}else {
//返回false则表示登录失败
System.out.println("用户名或密码错误..");
}
}
}