Java写一个登录页面的过程以及遇到的困难!

本文记录了一位新手使用Java、MySQL和Servlet实现登录页面的过程,包括数据库建表、项目结构设计、工具类编写、DAO操作、测试及web界面创建。在实践过程中遇到了jar包不兼容、类找不到、配置错误等典型问题,并分享了解决方法。通过这个小案例,作者加深了对数据库连接池和Web项目的理解,强调了错误解决对于编程技能提升的重要性。
摘要由CSDN通过智能技术生成

黑马程序员的一个小案例
对于我这种新手来说确实头疼,因为刚学的JDBC和连接池还没记清楚,刚好巩固一下。
第一步,MySQL建表。
第二步,创建一个web项目,web项目中有很多包,domain包是放user对象的,Dao包是放对对象的操作的,Test包是放测试类的,Utils包是放工具类的
首先是domian包下的User类,此类中定义了id,username,password,跟表中对应,然后自动生成getter和setter方法以及toString方法。
接下来开始写工具类了,这个工具类JDBCUtils是有关数据库连接池druid的,导入jar包,导入配置文件,然后开始写了,首先要定义一个DataSource对象,就称为ds吧,然后在此类中有2个方法,一个是getDataSource方法,一个是getConnection方法,都是static的,因为可以直接通过类名调用方法;
还要写什么呢,接下来在静态代码块中进行操作,解析配置文件以及获取连接对象(即DataSource)

 public class JDBCUtils {
   
    private  static DataSource ds;
    static {
   
        try {
   
            //加载配置文件
            Properties pro=new Properties();
            InputStream rs = JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties");
            pro.load(rs);
            //获取连接对象
            ds = DruidDataSourceFactory.createDataSource(pro);
        } catch (Exception e) {
   
            e.printStackTrace();
        }
    }
    //获取连接池对象
    public static DataSource getDataSource(){
   
        return ds;
    }
    //获取连接
    public static Connection getConnection() throws SQLException {
   
        return ds.getConnection();
    }
}

这时候工具类基本上就完成了,下一步,DAO包下面的LoginDao
这个类是用来获取user对象,对数据库中进行查询,查到了就返回user对象,没查到返回空`

public class userDAO {
   
	//获取jdbcTemplate对象,便于调用sql语句
    private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
	//传入登录时获取参数得到的对象,返回一个对象,若在数据库中能找到,则返回,否则则返回null
    public User login(User loginUser){
   
       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
抱歉,作为AI语言模型,我无法提供完整的安卓应用程序代码。但我可以给你一些思路和代码片段,帮助你完成这个登录页面。 思路: 首先,在XML布局文件中创建一个具有EditText和Button的登录表单,以便用户可以输入用户名和密码,并点击登录按钮。然后,创建一个Java类来处理登录逻辑。在这个类中,你需要验证用户输入的用户名和密码是否正确,如果正确,你可以启动你的应用程序的主要活动,否则,你可以向用户显示错误消息。 代码片段: XML布局文件: ``` <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <EditText android:id="@+id/username" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Username" android:inputType="text" /> <EditText android:id="@+id/password" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Password" android:inputType="textPassword" /> <Button android:id="@+id/login" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/password" android:layout_centerHorizontal="true" android:layout_marginTop="20dp" android:text="Login" /> </RelativeLayout> ``` Java类文件: ``` public class LoginActivity extends AppCompatActivity { private EditText usernameEditText; private EditText passwordEditText; private Button loginButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); usernameEditText = findViewById(R.id.username); passwordEditText = findViewById(R.id.password); loginButton = findViewById(R.id.login); loginButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String username = usernameEditText.getText().toString(); String password = passwordEditText.getText().toString(); if (TextUtils.isEmpty(username)) { usernameEditText.setError("Username is required!"); return; } if (TextUtils.isEmpty(password)) { passwordEditText.setError("Password is required!"); return; } if (username.equals("admin") && password.equals("123456")) { Intent intent = new Intent(LoginActivity.this, MainActivity.class); startActivity(intent); finish(); } else { Toast.makeText(LoginActivity.this, "Invalid username or password!", Toast.LENGTH_SHORT).show(); } } }); } } ``` 这是一个简单登录页面示例,它可以帮助你开始编你自己的安卓应用程序。但是,如果你遇到任何困难问题,请查看安卓官方文档或向社区寻求帮助。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值