通过JDBC链接数据库并执行数据库语句

来源:互联网 发布:图形化编程软件优缺点 编辑:程序博客网 时间:2024/06/02 02:15
此表中的内容是JDBC链接数据库并用于调用sql语句
import java.sql.Connection;  import java.sql.PreparedStatement;  import java.sql.ResultSet;  import java.sql.SQLException;  import java.sql.Statement;  import java.util.ArrayList;  import java.util.HashMap;  import java.util.List;  import java.util.Map;    import com.yy.servlet.po.User;  import com.yy.servlet.util.DBconnectionUitl;    /**  * @author kouyang  *  */  public class UserDao {      //单例模式      public UserDao(){                }      private static UserDao userDao = new UserDao();      public static UserDao getInstance(){          return userDao;      }            public boolean saveUser(User user){          boolean flag = false;                    Connection conn = null;          Statement st = null;          String sql = "";          try {              //获取连接              conn = DBconnectionUitl.getConnection();              //产生执行sql语句的对象              st = conn.createStatement();                            //拼凑sql语句              sql = "insert into user(username,sex,password) values ('"                   + user.getUsername() + "',"                  + user.getSex() + ",'"                  + user.getPassword() + "'"                  + ")";              System.out.println(sql);              //最好使用PreparedStatement此处为示例              //执行sql语句              int rows = st.executeUpdate(sql);              if(rows != 0)                  flag = true;          } catch (SQLException e) {              e.printStackTrace();          } finally {              DBconnectionUitl.closeAll(null, st, conn);          }          return flag;      }            public User getMap(Map<String,String> map){      //查询数据库中表user中的username与password          User user = null;                    Connection conn = null;          PreparedStatement ps = null;                    ResultSet rs = null;          String sql = "select * from user where username = ? and password = ?";//添加sql语句          try {              conn = DBconnectionUitl.getConnection();//加载驱动并链接数据库(封装内容)              ps = conn.prepareStatement(sql);//执行sql语句              ps.setString(1, map.get("username"));//sql语句中的第一个问号              ps.setString(2, map.get("password"));//sql语句中的第二个问号                            rs = ps.executeQuery();              while(rs.next()){                  user = new User();                  user.setUserId(rs.getInt("userId"));                  user.setUsername(rs.getString("username"));                  user.setSex(rs.getInt("sex"));                  user.setPassword(rs.getString("password"));                  user.setFlag(rs.getInt("flag"));              }//通过while循环获取查询到的数据          } catch (SQLException e) {              e.printStackTrace();          } finally {              DBconnectionUitl.closeAll(rs, ps, conn);//关闭          }          return user;      }                  public boolean saveUser2(User user2){      //通过jdbc把username与password添加到表user中          boolean flag = false;                    Connection conn = null;          PreparedStatement ps  = null;          String sql = "insert into user(username,password) values (?,?)";          try {              conn = DBconnectionUitl.getConnection();              ps = conn.prepareStatement(sql);              ps.setString(1,user2.getUsername());              ps.setString(2,user2.getPassword());              System.out.println(sql);              int rows = ps.executeUpdate();              if(rows != 0)                  flag = true;          } catch (SQLException e) {              e.printStackTrace();          } finally {              DBconnectionUitl.closeAll(null, ps, conn);          }          return flag;        }                  public User getUserByusername(String username){  //通过表user中的username查询表user中的相关信息          User user = null;                    Connection conn = null;          PreparedStatement ps = null;                    ResultSet rs = null;          String sql = "select * from user where username = ?";          try {              conn = DBconnectionUitl.getConnection();              ps = conn.prepareStatement(sql);              ps.setString(1, username);                            rs = ps.executeQuery();              while(rs.next()){                  user = new User();                  user.setUserId(rs.getInt("userId"));                  user.setUsername(rs.getString("username"));                  user.setSex(rs.getInt("sex"));                  user.setPassword(rs.getString("password"));                  user.setFlag(rs.getInt("flag"));              }          } catch (SQLException e) {              e.printStackTrace();          } finally {              DBconnectionUitl.closeAll(rs, ps, conn);          }          return user;      }
此段代码为上段的封装内容
import java.io.InputStream;  import java.sql.Connection;  import java.sql.DriverManager;  import java.sql.PreparedStatement;  import java.sql.ResultSet;  import java.sql.SQLException;  import java.sql.Statement;  import java.util.Properties;    //封装jdbc中的关联数据库与关闭界面  public class DBconnectionUitl {      private static String jdbcDriver = "";      private static String jdbcURL = "";      private static String jdbcUser = "";      private static String jdbcPassword = "";                  static {          InputStream is = null;//获取数据流          Properties p = new Properties();          try {              is = DBconnectionUitl.class.getClassLoader().getResourceAsStream("jdbc.properties");//通过数据流调用jdbc.properties中存储的登录信息              p.load(is);                            jdbcDriver = p.getProperty("jdbcDriver");              jdbcURL = p.getProperty("jdbcURL");              jdbcUser = p.getProperty("jdbcUser");              jdbcPassword = p.getProperty("jdbcPassword");              //匹配jdbc.properties中的相关信息          } catch (IOException e) {              e.printStackTrace();          }      }            public static Connection getConnection(){          Connection conn = null;          try {              Class.forName(jdbcDriver);//加载驱动              conn = DriverManager.getConnection(jdbcURL, jdbcUser, jdbcPassword);//链接数据库          } catch (ClassNotFoundException e) {              e.printStackTrace();          } catch (SQLException e) {              e.printStackTrace();          }          return conn;      }            public static void closeAll(ResultSet rs,Statement st,Connection conn){      //关闭时奉行先运行后关闭后运行先关闭的原则          try {              if(rs != null)                  rs.close();//关闭ResultSet          } catch (Exception e) {              e.printStackTrace();          } finally {              try {                  if(st != null)                      st.close();//关闭Statement              } catch (Exception e) {                  e.printStackTrace();              } finally {                  try {                      if(conn != null)                          conn.close();//关闭Connection                  } catch (Exception e) {                      e.printStackTrace();                  }              }          }      }            public static void closeAll(ResultSet rs,PreparedStatement ps,Connection conn){          try {              if(rs != null)                  rs.close();          } catch (Exception e) {              e.printStackTrace();          } finally {              try {                  if(ps != null)                      ps.close();              } catch (Exception e) {                  e.printStackTrace();              } finally {                  try {                      if(conn != null)                          conn.close();                  } catch (Exception e) {                      e.printStackTrace();                  }              }          }  


用于存储并表user的相关信息
public class User {      private int userId;      private String username;      private int sex;      private String password;      private int flag;            public int getUserId() {          return userId;      }      public void setUserId(int userId) {          this.userId = userId;      }      public String getUsername() {          return username;      }      public void setUsername(String username) {          this.username = username;      }      public int getSex() {          return sex;      }      public void setSex(int sex) {          this.sex = sex;      }      public String getPassword() {          return password;      }      public void setPassword(String password) {          this.password = password;      }      public int getFlag() {          return flag;      }      public void setFlag(int flag) {          this.flag = flag;      }  


附带文件jdbc.properties中的内容
表user
下接Servlet关联数据库后验证登录信息和注册

原创粉丝点击