您的位置:首页 > 编程语言 > Java开发

mysql与myeclipse连接

2017-07-03 21:29 218 查看

工程中的包

1.包的命名规则

com.公司名.(项目名.具体模块的名称)实现分类的名称

1.po包:存放的是javabean类,每个Javabean类对应数据库中一张表。类名和表名一致

2.dao包:存放的是操作数据的类,即对数据库中的表进行增删查改操作的类,每个dao类对应数据库中的一张表。类

名为一表名+Dao

3.util包:存放的是公用的类和常量类

4.test包:存放的是测试类

javabean类:储存数据的类。只包括属性、构造器、setter和getter方法

数据库客服端操作数据库的步骤:

1.连接数据库(ip地址,端口号,用户名,密码,数据库名)

2.打开发送和执行sql语句的窗口

3.发送和执行sql语句

4.根据返回结果,判断是否正确操作了数据库

5.关闭打开的所有的东西

JDBC操作数据库的步骤:

1.连接到数据库:

(1)加载数据库驱动:会抛出一个ClassNotFoundException异常

mysql:Class.forName("com.mysql.jdbc.Driver")

oracle:Class.forName("");

(2)利用驱动和三个参数(url,user,password)获得连接:会抛出一个SQLException异常

java.sql.Connection con = java.sql.DriverManager.getConnection(url,user,password);

mysql:String url = "jdbc:mysql://127.0.0.1:端口号/databaseName".

oracle:String url = "";

3.通过连接获得操作数据库的对象:会抛出一个SQLException异常

java.sql.Statement st = con.createStatement();

4.使用java.sql.Statement对象执行sql语句:会抛出一个SQLException异常

执行更新sql语句:int rows = st.executeUpdate(sql);

执行查询sql语句:java.sql.ResultSet re = st.executeQuery(sql);

5.根据返回的rows/re,判断SQL语句是否正确执行:

rows!=0 SQL语句正常执行

re.next()==true  表示查出了字表

6.关闭,先打开后关闭

关闭re:re.close():会抛出一个SQLException异常

关闭st:st.close():会抛出一个SQLException异常

关闭con:con.close()会抛出一个SQLException异常

第一个jar 包:数据库的驱动

Web工程的jar包都是放在WebRoot/WEB-INF/lib文件夹里(放在里面,自动导入)

几个接口:

java.sql.Connection是一个接口

java.sql.Statement是一个接口

java.sql.ResultSet是一个接口

java.sql.PreparedStatement是一个接口

数据库连接配置文件:database.properties只加载一次,放在src文件夹下面

properties文件以键(name)值(value)方式保存数据

从properties文件中解析出value值:

InputStream is = null;

is = DBConnectionUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");

Properties p = new Properties();

p.load(is);

String value = p.getProperty("name");

java.sql.Statement和java.sql.PreparedStatement比较

代码比较

1.SQL的写法:

Satement:String sql = "selete id from user where email =' "+email+" ' ";

PreparedStatement:String sql = "selete id from user where email = ?"

2.st/ps的获取:

Statement:st = con.createStatement();

PreparedStatement:ps = con.preparedStatement(sql);

3.参数的设置:

Statement:在SQL中给出

PreparedStatement:ps.setType(1,value);  ps.setType(2,value);

4.执行SQL:

Statement:int rows  =  st.executeUpdate(sql);      re = st.executeQuery(sql);

PreparedStatement:int rows = ps.executeUpdate();    re = ps.executeQuery();

PreparedStatement的优势:

1.防止SQL的注入,提高安全性

2.对参数实现类型的自动转换,代码的可读性,可维护性提高

3,.对于批处理:PreparedStatement效率更高一些(oracle明显,MySQL区别不大)

package com.yy.jdbc.dao;

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.List;

import com.yy.jdbc.po.User;

import com.yy.jdbc.util.DBconnectionUitl;

/**

 * @author kouyang

 *

 */

public class UserDao {

 //单例模式

 public UserDao(){

  

 }

 private static UserDao userDao = new UserDao();

 public static UserDao getInstance(){

  return userDao;

 }

 

 /**

  * @param user

  *

  * @return true保存成功,false保存失败

  */

 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);

   

   //执行sql语句

   int rows = st.executeUpdate(sql);

   if(rows != 0)

    flag = true;

  } catch (SQLException e) {

   e.printStackTrace();

  } finally {

   DBconnectionUitl.closeAll(null, st, conn);

  }

  return flag;

 }

 

 /**

  * 通过userId删除user对象

  * @param userId

  * @return

  */

 public boolean deleteUserByUserId(int userId){

  boolean flag = false;

  

  Connection conn = null;

  Statement st = null;

  String sql = "delete from user where userId = " + userId;

  

  try {

   conn = DBconnectionUitl.getConnection();

   st = conn.createStatement();

   int rows = st.executeUpdate(sql);

   if(rows != 0)

    flag = true;

  } catch (SQLException e) {

   e.printStackTrace();

  } finally {

   DBconnectionUitl.closeAll(null, st, conn);

  }

  return flag;

 }

 

 /**

  * 通过username修改user对象

  * @param username

  * @return

  */

 public boolean updateUserByUsername(String username,String password){

 boolean flag = false;

  

  Connection conn = null;

  Statement st = null;

  String sql = "update user set password='"+password+"' where username = '" + username+"'";

  System.out.println(sql);

  try {

   conn = DBconnectionUitl.getConnection();

   st = conn.createStatement();

   int rows = st.executeUpdate(sql);

   if(rows != 0)

    flag = true;

  } catch (SQLException e) {

   e.printStackTrace();

  } finally {

   DBconnectionUitl.closeAll(null, st, conn);

  }

  return flag;

 }

 

 public List<User> getAllUserList(){

  List<User> userList = new ArrayList<User>();

  Connection conn = null;

  Statement st = null;

  

  String sql = "select * from user";

  ResultSet rs = null;

  try {

   conn = DBconnectionUitl.getConnection();

   st = conn.createStatement();

   rs = st.executeQuery(sql);

   

   while(rs.next()){

    User 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"));

    userList.add(user);

   }

  } catch (SQLException e) {

   e.printStackTrace();

  } finally {

   DBconnectionUitl.closeAll(rs, st, conn);

  }

  return userList;

 }

 

 public List<User> getUserListPage(int start,int pageNo){

  List<User> userList = new ArrayList<User>();

  

  Connection conn = null;

  PreparedStatement ps = null;

  

  ResultSet rs =
4000
null;

  String sql = "select * from user order by userId asc limit ?,?";

  try {

   conn = DBconnectionUitl.getConnection();

   ps = conn.prepareStatement(sql);

   ps.setInt(1, start);

   ps.setInt(2, pageNo);

   

   rs = ps.executeQuery();

   while(rs.next()){

    User 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"));

    userList.add(user);

   }

  } catch (SQLException e) {

   e.printStackTrace();

  } finally {

   DBconnectionUitl.closeAll(rs, ps, conn);

  }

  

  

  return userList;

 }

 

}

package com.yy.jdbc.po;

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;

 }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: